int a;
a<<=1;是什么意思?谢谢!!
VC++关于移位的问题:
答案:2 悬赏:30 手机版
解决时间 2021-04-23 13:54
- 提问者网友:做自己de王妃
- 2021-04-23 10:05
最佳答案
- 五星知识达人网友:鱼芗
- 2021-04-23 11:33
.
c语言有两个移位运算符:左移<<,右移>>
如有变量x,值是8,内存中二进制补码是00001000
如果有x>>=3,x在内存中变为00000001,值成了1
.在VC中,右移时,左边补符号位,比如11100000(-32),右移三位后成了11111100(-4)
可以看到,右移有除法功能:8/(2^3)=1,;-32/(2^3)=-4;
也就是说,x>>=n等效于x/=pow(2,n)
当然,右移还有其它用途.
左移相反,不过右边总是补零,如00001000<<2,表达式的值是00100000
PS:浮点数不能作移位运算
c语言有两个移位运算符:左移<<,右移>>
如有变量x,值是8,内存中二进制补码是00001000
如果有x>>=3,x在内存中变为00000001,值成了1
.在VC中,右移时,左边补符号位,比如11100000(-32),右移三位后成了11111100(-4)
可以看到,右移有除法功能:8/(2^3)=1,;-32/(2^3)=-4;
也就是说,x>>=n等效于x/=pow(2,n)
当然,右移还有其它用途.
左移相反,不过右边总是补零,如00001000<<2,表达式的值是00100000
PS:浮点数不能作移位运算
全部回答
- 1楼网友:摆渡翁
- 2021-04-23 12:32
就是a的二进制左移一位,相当于
a = a * 2;
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯