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

为什么对1取反为-2?

时间:2016-04-24 23:07:03      阅读:256      评论:0      收藏:0      [点我收藏+]

标签:

为什么

int i =5;

~i = -6

int j = -1;

~j = -2

?

原来计算机中带符号的整数以二进制的补码进行存储

参见:

http://www.cnblogs.com/dolphin0520/archive/2012/10/09/2711768.html

从原码/补码的角度来看,就清楚了

1        
原码 00000000 00000000 00000000 00000001
取反 11111111 11111111 11111111 11111110
-2        
原码 10000000 00000000 00000000 00000010
反码 11111111 11111111 11111111 11111101
补码 11111111 11111111 11111111 11111110
         
5        
原码 00000000 00000000 00000000 00000101
取反 11111111 11111111 11111111 11111010
-6        
原码 10000000 00000000 00000000 00000110
反码 11111111 11111111 11111111 11111001
补码 11111111 11111111 11111111 11111010

为什么对1取反为-2?

标签:

原文地址:http://www.cnblogs.com/AndyHoo/p/5428734.html

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