在不使用正数的情况下用二进制(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