码迷,mamicode.com
首页 > 其他好文 > 详细

原码反码补码

时间:2020-06-30 00:29:32      阅读:68      评论:0      收藏:0      [点我收藏+]

标签:相同   --   col   反码   一个   lan   完全   lang   形式   

 

1.计算机在任何情况下都只能识别二进制

2.计算机在底层存储数据的时候,一律存储的是“二进制的补码形式”,原因是:补码形式效率高

3.二进制有:原码、反码、补码

4.对于一个正数来说:二进制原码、反码、补码都是同一个,完全相同。

  如 int i=4;

  对应的原、反、补码都是:00000000 00000000 00000000 00000100

5.对于一个负数来说,原码、反码、补码的关系为:

  负数的反码是在其原码的基础上, 符号位不变,其余各个位取反;负数的补码是其反码再加1--(由补码可以推导出原码,负数的补码减1得出反码,再反码的符号位不变,其余位取反就能得出原码)

  如 byte i=-5; (二进制的最高位是符号位:0表示正数,1表示负数)

  对应的原码:10000101

  对应的反码:11111010

  对应的补码:11111011

 

示例:byte a=-5; byte b=4这两个相加应为-1,下面来从二进制的原码、反码、补码来解释一下

byte a=-5 对应的补码为:111110111

byte b=4 对应的补码为: 00000100

上面两个补码相加为:    111111111 由这个负数补码推导出反码为:11111110,再推导出原码为:10000001 所以结果为:-1

 

原码反码补码

标签:相同   --   col   反码   一个   lan   完全   lang   形式   

原文地址:https://www.cnblogs.com/wx1995/p/13211211.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!