原码,补码,反码

源码

0000 0111    7  第一位之符号,0是正数,1是负数

1000 0111   -7    转成16进制   87


反码

0000 0111    7  正数的反码就是他本身

1111 1000  -7  负数的反码,符号位不动,其他的1变0,0变1      转成16进制    F8


补码

0000 0111  7  正数的补码还是他本身

1111 1001  -7  负数的补码是他的反码+1     转成16进制   F9



手机,电脑,服务器都是用的补码进行存储,内存地址就是补码的16进制


原码,反码,补码,正数都一样

负数原码取反,补码是反码+1


无符号没有符号位


原码的加法

0000 0111    +7

1000 0001    -1

取绝对值,           去掉符号位,比较大小再用相减(大减小),    加上符号

0000 0001


0000 0111   +7

0000 0001    1

0000 0110    6



0000 0111    +7

1000 1001    -9


0000 1001     +9

0000 0111     +7

0000 0010     +2

1000 0010     -2


补码加法步骤

0000 0111    +7

1000 0001    -1

1111 1110    -1反码

1111 1111    -1补码

补码加法直接加

0000 0111  +7的补码

1111 1111  -1的补码

0000 0110  第一位进位,直接把符号位+成0了,+6


0000 0111  +7

1000 1001  -9

1111 0110  -9反码

1111 0111  -9补码

直接加

0000 0111

1111 0111

1111 1110  这是一个补码,再求他的补码

1000 0001

1000 0010  这是那个数的原码  -2


计算机用的是反码,加法计算只用一步,而原码的加法需要3步或者更多,补码的+ - * /运算速度都快于原码


反码的获得是可逆的,原码求反码,和反码求原码是一样的







  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值