在不使用正数的情况下用二进制(2 的补码)写一个负数
Write a negative number in binary (2's complement) without using the positive number
用二进制写-5
的通常方法是写5
然后得到它的2的补码(即翻转所有位并加1):
5 = 0b00000101
-5 = 0b11111011
现在有没有一种方法可以在不使用 5
本身的情况下将 -5
写成 2 的补码?
即表示正数时,我们只需 ... + (bit_1 * 2^1) + (bit_0 * 2^0)
对于 2 的补码中的负数,我们有类似的规则吗?
在带符号的二进制补码中,位值与无符号的完全相同,除了最高位被取反。所以
-1*位n-1*2n-1 + 位n-2*2n-2 + ... + 位1*21 + 位0*20
用二进制写-5
的通常方法是写5
然后得到它的2的补码(即翻转所有位并加1):
5 = 0b00000101
-5 = 0b11111011
现在有没有一种方法可以在不使用 5
本身的情况下将 -5
写成 2 的补码?
即表示正数时,我们只需 ... + (bit_1 * 2^1) + (bit_0 * 2^0)
对于 2 的补码中的负数,我们有类似的规则吗?
在带符号的二进制补码中,位值与无符号的完全相同,除了最高位被取反。所以
-1*位n-1*2n-1 + 位n-2*2n-2 + ... + 位1*21 + 位0*20