您的位置:首页 > 编程语言 > C语言/C++

位运算中的符号运算

2016-03-01 20:07 260 查看

1.取反符号“~”

例:~10=-11。

要想明白取反符号的用法及运算过程,必须知道在计算机中数是以补码的形式存储的。还应了解原码,反码,补码之间的转换关系。

以八位整数10为例:

原码:00001010

反码:00001010

补码:00001010

*正数的补码和反码都与原码相同。

以八位整数-10为例:

原码:10001010

反码:11110101

补码:11110110

*负数情况比较复杂。

反码=原码除符号位每位取反

补码=反码+1

回过头来看取反符号的问题就简单多了。10的补码是00001010,取反后为11110101。该结果是以补码的方式存储的,因此接下来便是求这个补码代表哪一个数,即求负数(因为最高位是1,为负数)补码的逆过程。已知补码求原码:补码减1(11110100)符号不变再取反((10001011)=-3)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 位运算