-7

我对这段代码有疑问,有人可以为我解决这个问题吗?

a=32, b=0xE

我需要解释“案例2”:

case 2: b>>=(a>>5); break;
4

2 回答 2

2

首先,根据您的问题,现在 是 0xE十六进制表示法, 然后 使用 右移运算符(>>) 然后 14b >>= (a>>5)a = 32; b = 14;b = b >> (a >> 5)b = 14 >> (32 >> 5)b = 14 >> 1b = 7

于 2018-04-28T19:19:09.020 回答
1

case 2是带赋值的按位移位。

b >>= (a>>5);

b = b >> (a >> 5);

b = b >> (a / 2 / 2 / 2 / 2 / 2);

您也可以将右移扩展a为除以2

于 2018-04-28T19:02:39.247 回答