作业帮 > 综合 > 作业

麻烦请解释里面的一个例子

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/07 10:15:47
麻烦请解释里面的一个例子
/* getbits:get n bits from position p */
unsigned getbits(unsigned x,int p,int n)
{
return (x >> (p+1n))
& 0
你的代码有点错误,正确的为
/* getbits:get n bits from position p */
unsigned getbits(unsigned x,int p,int n)
{
return (x >> (p+1-n)) & 0 > (p+1-n)还是移了1位,说明位置p是以0开始计数的,也就是第p+1个位,类似数组下标.
return后的表达式可被&分成两部分,先看右边
0就是对0取反,也就是全1