首 页 行业资讯 新车 试驾评测 养车用车 车型库

C语言中的语句a>>=2是什么意思,比如a=10101110 ,那么最终的值多少

发布网友 发布时间:2022-04-24 02:41

我来回答

5个回答

热心网友 时间:2023-10-22 14:21

>>=只对整数管用,右移后面的数字那么多位,再将结果赋给左边的变量。a>>=2就是将变量a的值右移2位再将结果赋给a。意义与“将a的值除以4并将结果赋给a”等价——右移多少位,效果就是除以2的多少次方。

热心网友 时间:2023-10-22 14:22

C语言中的语句a>>=2,就是把a的二进制值的最后2位抹掉。
比如a=10101110,经过a>>=2后,a的值就是101011。追问还是感觉十分别扭,两个运输符怎么可以挨着

追答两个运算符是可以挨着的。a>>=2等价于a=a>>2
这很常见:

x+=a;
y-=b;
…………

热心网友 时间:2023-10-22 14:22

你这给的是十进制。右移两位,十进制上相当于除以4,所以结果是10101110/4。
你要表示二进制,可以在C语言里用16进制。

int a = 0xae;//10101110
a>>=2;
printf("%x",a);//结果为0x2b---00101011

热心网友 时间:2023-10-22 14:23

就是把a的右移2位,前面补充2个零,
最终结果是00101011追问还是感觉十分别扭,两个运输符怎么可以挨着

追答习惯就好。

热心网友 时间:2023-10-22 14:23

右移存在最左边补位问题,值得注意

热心网友 时间:2023-11-13 15:20

>>=只对整数管用,右移后面的数字那么多位,再将结果赋给左边的变量。a>>=2就是将变量a的值右移2位再将结果赋给a。意义与“将a的值除以4并将结果赋给a”等价——右移多少位,效果就是除以2的多少次方。

热心网友 时间:2023-11-13 15:20

C语言中的语句a>>=2,就是把a的二进制值的最后2位抹掉。
比如a=10101110,经过a>>=2后,a的值就是101011。追问还是感觉十分别扭,两个运输符怎么可以挨着

追答两个运算符是可以挨着的。a>>=2等价于a=a>>2
这很常见:

x+=a;
y-=b;
…………

热心网友 时间:2023-11-13 15:21

你这给的是十进制。右移两位,十进制上相当于除以4,所以结果是10101110/4。
你要表示二进制,可以在C语言里用16进制。

int a = 0xae;//10101110
a>>=2;
printf("%x",a);//结果为0x2b---00101011

热心网友 时间:2023-11-13 15:21

就是把a的右移2位,前面补充2个零,
最终结果是00101011追问还是感觉十分别扭,两个运输符怎么可以挨着

追答习惯就好。

热心网友 时间:2023-11-13 15:22

右移存在最左边补位问题,值得注意

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com