左移右移运算
右移相当于是除,左移相当于就是乘,左移一位乘以2,左移二位乘以4,依此类推。无论正数、负数,它们的右移、左移、无符号右移32位都是其本身,比如-5<<32=-5、-5>>...
右移相当于是除,左移相当于就是乘,左移一位乘以2,左移二位乘以4,依此类推。无论正数、负数,它们的右移、左移、无符号右移32位都是其本身,比如-5<<32=-5、-5>>32=-5、-5>>>32=-5
如:-5>>3=-1
-5<<3=-40
5>>3=0
5<<3=40
-5>>>3=536870911
请问这里-5>>3相当于-5/8=-0.625然后约等于-1?
5>>3相当于5/8=0.625然后约等于0?就是说用除法得到的负的小数与正的小数约等于后的值都是靠近0的值?
另外,-5>>>3=536870911怎么得到的?谢谢! 展开
如:-5>>3=-1
-5<<3=-40
5>>3=0
5<<3=40
-5>>>3=536870911
请问这里-5>>3相当于-5/8=-0.625然后约等于-1?
5>>3相当于5/8=0.625然后约等于0?就是说用除法得到的负的小数与正的小数约等于后的值都是靠近0的值?
另外,-5>>>3=536870911怎么得到的?谢谢! 展开
1个回答
2010-07-25
展开全部
>>右移时,空出来的高位用1还是0补上是由计算机系统决定的,不过从你给的题目可看出,是由要位移的数的高位决定的,如果高位为1则用1补,高位为0则用0补,
-5用十六进制表示就是0xffff fffb,右移3位,高位空出来的3位用1补,就是0xffffffff,即-1
5用十六进制表示就是0x00000005,右移3位,高位空出来的3为用0补,就是0x00000000,即0
>>>是无符号右移运算符,即空出来的位用0补,所以
-5>>>3即0xfffffffb>>>3 得到的十六进制数为0x1fffffff 也就是536870911
-5用十六进制表示就是0xffff fffb,右移3位,高位空出来的3位用1补,就是0xffffffff,即-1
5用十六进制表示就是0x00000005,右移3位,高位空出来的3为用0补,就是0x00000000,即0
>>>是无符号右移运算符,即空出来的位用0补,所以
-5>>>3即0xfffffffb>>>3 得到的十六进制数为0x1fffffff 也就是536870911
中智咨询
2024-08-28 广告
2024-08-28 广告
在当今竞争激烈的商业环境中,企业需要不断提高自身的竞争力,以保持市场份额和增加利润。通过人效提升,企业可以更有效地利用有限的资源,提高生产力和效益,从而实现盈利目标。中智咨询提供全方位的组织人效评价与诊断、人效提升方案等数据和管理咨询服务。...
点击进入详情页
本回答由中智咨询提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询