c语言反码函数 c语言反码补码( 四 )


1 0 1 1 0 1 0 0 原码
1 1 0 0 1 0 1 1 反码,符号位不变,数值位取反
1 1 0 0 1 1 0 0 补码,符号位不变 , 数值位取反+1
故:[X]补=11001100B,[X]反=11001011B 。
(2) 已知补码,求原码 。
分析:按照求负数补码的逆过程,数值部分应是最低位减1,然后取反 。但是对二进制数来说 , 先减1后取反和先取反后加1得到的结果是一样的,故仍可采用取反加1 有方法 。
例:已知某数X的补码11101110B,试求其原码 。
解:由[X]补=11101110B知,X为负数 。
1 1 1 0 1 1 1 0 补码
1 1 1 0 1 1 0 1 反码(符号位不变 , 数值位取反加1)
1 0 0 1 0 0 1 0 原码(符号位不变 , 数值位取反)
关于补码的补充例子:
一个正的整数的补码就是这个整数变成二进制的值 。
举例:一个int型变量i=10,其二进制补码就是0000 0000 0000 0000 0000 0000 0000 1010(0x0000000A)
2. 一个负整数的二进制补码,就是该负数的绝对值所对应的补码全部取反后加1.
举例:int i=-10的补码如何求得:
先求-10的绝对值10的补码是0000 0000 0000 0000 0000 0000 0000 1010(0x0000000A);
再将求得的补码取反: 1111 1111 1111 1111 1111 1111 1111 0101
再将取反后得到的补码加1: 1111 1111 1111 1111 1111 1111 1111 0101 + 1
即可得到-10的二进制补码: 1111 1111 1111 1111 1111 1111 1111 0110(0xFFFFFFF6)
3. +0和-0的二进制补码都是0
首先+0的二进制补码是0;
-0的二进制补码是+0的二进制补码取反后加1,+0的二进制补码为0 , 取反后为FFFFFFFF,加1后还是0
原码和反码在数值0都有二意,唯有补码在数值0是唯一的码值!
c语言反码函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言反码补码、c语言反码函数的信息别忘了在本站进行查找喔 。

推荐阅读