麻烦请解释里面的一个例子/* getbits:get n bits from position p */unsigned getbits(unsigned x,int p,int n){return (x >> (p+1n))& 0

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/14 13:36:37

麻烦请解释里面的一个例子/* 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+1n))
& 0

麻烦请解释里面的一个例子/* 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