最大有符号字节 -1 是怎样的?

How is a max signed byte -1?

我真的很好奇和困惑:

0xFFFF (0b11111111111111) 或 0xFF (0b11111111) -1 怎么样?

如果 0b01111111 是 127 并且第一位表示它是一个正数那么 0b11111111 不应该是 -127 吗?

我是不是漏了什么???

二进制补码形式通常用于表示有符号整数。以这种方式交换数字的符号,将所有位反转并加1。它的优点是零只有一种表示形式。

01111111 = 127

要得到 -127 翻转位:

10000000

并加1:

10000001

要否定1:

00000001 
11111110 // flip
11111111 // + 1

有 0 个:

00000000
11111111 // flip
00000000 // + 1 (the carry bit is discarded and it's still 0)

并且只是为了表明它以另一种方式工作:

有-127:

10000001
01111110 // flip
01111111 // + 1 and you are back to +127.