最大有符号字节 -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.
我真的很好奇和困惑:
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.