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

2024-11-28 19:37:13
推荐回答(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