首页 > 其他 > 详细

为什么对1取反为-2?

时间:2019-04-05 12:09:35      阅读:422      评论:0      收藏:0      [点我收藏+]

为什么对1取反为-2?

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?

原文:https://www.cnblogs.com/tigerlion/p/10658284.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!