C语言中,如何求一个数的二进制补码?举个例子,谢谢!

2024年11月28日 19:37
有2个网友回答
网友(1):

补码是反码加1,把实际数据转换为2进制数据,然后把1变0,0变1,结果为反码。再加1就是补码。

如:10101010
反码为:01010101
补码为:01010110

也可以认为:从右到左第一个1为分界线,左边按位取反,右边(含本身)不变

网友(2):

正数的补码是其原值
例如占一个字节的10,二进制为0 000 1010, 第一位0表示+,
补码也是0 000 1010
负数的话-10, 二进制为1 000 1010, 第一位1 表示-,
补码求法为 :符号位不变,其余取反再加1
1 000 1010 取反 1 111 0101
再加1: 1 111 0110