补码原码反码

正数的源码,反码,补码都是相同的

负数源码,反码,补码

  1. 负数源码和反码的相互转化
    符号位不变,数值位按位取反
  2. 负数源码和补码的相互转化
  • 负数原码转化为补码:符号位不变,数值位按位取反,末尾加一
  • 负数补码转化为原码:符号位不变,数值位按位取反,末尾加1

3.负数反码和补码的相互转化

  • 负数反码转化为补码:末尾加1。
  • 负数补码转化为反码:末尾减1(注意,此处的反码是指原码的反码)。

简便方法

负数在计算机中是用补码的形式存储的,正数在计算机中是用原码的形式存储的。
正数求原码直接将十进制转二进制即可,负数的补码是在原码的基础上除符号位外其余位取反后+1。

但是用这种方式求负数补码用编程实现不太方便,下面介绍一种用编程实现起来较简便的求负数补码的方法:

  1. 求出负数绝对值的原码
  2. 从原码的最后一位数码位往前数,当遇到第一个1时停在此位置
  3. 将第一个1前面的数码全部求反
    比如:(字长为8位)
求-127的补码:
127的原码:  01111111
-127的补码:   10000001
求-80的补码:
80的原码:  01010000
-80的补码:   10110000
求-1的补码:
1的原码:  00000001
-1的补码:   11111111

这种方式用编程实现起来比较方便,在原码的基础上除符号位外其余位取反后+1的方式要考虑进位。

全部评论

相关推荐

allin实习的大白...:我把第二个项目发出来了,如果感兴趣可以去研究研究,欢迎交流。 https://gitee.com/jtyjtyjty333/ind-dist-ai-sec-edge-cloud https://github.com/jtylab/ind-dist-ai-sec-edge-cloud
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务