针对存储在计算机中中二进制的操作,正数在计算机中是用二进制表示的,负数在计算机中使用补码表示的。
先说明补码:
说明下-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补充
例如:
二进制移位与补码的原理及操作

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

被折叠的 条评论
为什么被折叠?



