原码、反码、补码、移码

原码、反码、补码、移码

背景:为了解决计算机中减法计算的问题,因为计算机中只有加法器,减法的计算是要转换成加法才能进行。

原码

二进制首位为标志位

正数 标志位为0

0 x x x x x x x

负数 标志位为1

1 x x x x x x x

示例:

14 = 00001110

-21 = 10010101

反码

正数:原码、反码、补码相同,为原码本身。

负数:原码 -> 反码:标志位(也就是符号位)不变,其他取反

14 : 0000 1110

-21: 1110 1010 计算方法如下

-21原码:10010101
取反:   11101010

补码

补码在反码的基础上加1,符号位保持不变

补码 = 反码 + 1

-21 = 1110 1011

移码

我们都知道正数的原码、反码、补码相同,为原码本身,但是移码是在补码的基础上符号位取反的。

负数的移码是在其补码的基础上符号位取反的来的。

移码 = 补码符号位取反

总的来说,移码是在补码的基础上,符号位取反得来的。

示例:

-21的移码:

-21 = 0110 1011

计算机内计算方式

示例1:

14 + (-21) = -7 (11111011就是-7的补码)

采用的是 补码 + 补码 的方式

最后将 补码 -> 反码 -> 原码

示例2:

14-(-21)= 14 + 21 = 35

知识点补充与总结

(1)8位二进制数能表示的十进制数范围为-128到+127

(2)如果数小于-128或大于127,则会溢出,溢出只能用两个字节,16位二进制数表示了
(3)0的补码为00000000,-128的补码为10000000:
(4)计算机中有符号数用补码表示
(5)原码首位为标志位,1表示负数,0表示正数:
(6)反码 = 原码的标志位不变,其他取反
(7)补码=反码 + 1;
(8)正整数的原码、反码、补码相同

posted on   ~码铃薯~  阅读(2548)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
历史上的今天:
2020-02-03 远程连接VPN-用户尝试爆破登录,被系统锁定
2020-02-03 保险业务知识-价税分离

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示