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

理解 补码

时间:2015-05-10 09:39:24      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:

 引出问题为什么使用补码表示二进制:

  因为方便计算

  理解补码:在十进制中9-3=6,因为3+7=10,对于加减运算 -3其实可以看做是7,也即9+7=16(高位移去即减10)=6。二进制也是如此理解。

  在程序中所有的二进制都用补码来表示的话,就不会有+,-符号的处理。

验证一下:

  1的原码、反码、补码:00000000000000000000000000000001

  -1的原码:10000000000000000000000000000001

  -1的反码(除符号位其余为取反):11111111111111111111111111111110

  -1的的补码(反码+1):11111111111111111111111111111111

写如下方法

static void printBinaryInt(int i) {
for (int j = 31; j >= 0; j--)
if (((1 << j) & i) != 0)
System.out.print("1");
else
System.out.print("0");
}

调用printBinaryInt(1);//结果为  00000000000000000000000000000001

调用printBinaryInt(-1);//结果为  11111111111111111111111111111111

结果与分析的一样,以上。

 

理解 补码

标签:

原文地址:http://www.cnblogs.com/yemanling/p/4491552.html

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