如何判断一个计算机系统的右移是“逻辑右移”,还是“算术右移”?

右移和左移是不同的

对于左移来说,是没有“逻辑左移”和“算术左移”的区别的,这里的区别主要在于计算机系统根据最高位(也就是符号位)是“1”还是“0”,补充“1”还是“0”

无论是对于无符号数的最高位为“1”,还是为“0”,左移时最低位一律补全“0”

或者是对于有符号数的符号是正“0”,还是负“1”,左移最低位也一律补全“0”


不同之处在于

只有在右移的时候,才有“逻辑”和“算术”的区别


如何测试一个计算机系统是“逻辑右移”还是“算术右移”?

答案是:必须用最高位为“1”的数测试

如果最高位为“1”的数(这里用全“1”序列~0来表示)右移 :

a=(~0>>4);
if(a==~0)printf("计算机系统为算术右移");
else printf("计算机系统为逻辑右移");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值