二进制移位、补码

二进制移位与补码的原理及操作
本文详细介绍了计算机中二进制表示负数的补码机制,通过实例解析了正数和负数的左移和右移操作。对于正数,左移补0,右移补0;对于负数,左移同样补0,而右移正数补0,负数高位补1。同时提到了无符号右移操作只在右移时补0。

针对存储在计算机中中二进制的操作,正数在计算机中是用二进制表示的,负数在计算机中使用补码表示的。
先说明补码:
说明下-5怎么用二进制表示就明白补码的问题了:
5转化为二进制是101,八位的话为:00000101
然后取反,5的二进制就是-5二进制的原码

原码:00000101
反码:11111010

对,反码和原码反着来的
然后加一,反码加一就是补码

原码:00000101
反码:11111010
补码:11111011

补码就是负数在计算机中的二进制表示方法。

然后现在来说明位移问题:

左位移:<<, 有符号的移位操作
左移操作将运算位的二进制码整体左移指定位数,左移之后的空位补0
例如:
正:
00000000 00000000 00000000 00000011 3在计算机中表示
00000000 00000000 00000000 0000001100 左移2位,补0,结果为12
负:
按照如上转负数的过程:
11111111 11111111 11111111 11111100 —反码
11111111 11111111 11111111 11111101 —补码(-3的表示)
11111111 11111111 11111111 1111110100 左移两位,补0 就是补码啦 然后求原码
111111 11111111 11111111 1111110011 --减一
10000000 00000000 00000000 00001100 -12

右位移:>>,有符号的移位操作
右移操作将运算位的二进制码整体右移指定位数,右移之后的空位如果是正数用0补充,负数用1补充
例如:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值