【问题标题】:How is a max signed byte -1? [duplicate]最大有符号字节-1如何? [复制]
【发布时间】:2021-09-20 16:56:26
【问题描述】:

我真的很好奇也很困惑:

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

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

我错过了什么吗???

【问题讨论】:

标签: bit-manipulation bit


【解决方案1】:

二进制补码形式通常用于表示有符号整数。以这种方式交换数字的符号,将所有位反转并加 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.

【讨论】:

    猜你喜欢
    • 2016-07-21
    • 2013-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-31
    • 1970-01-01
    • 2018-04-07
    • 1970-01-01
    相关资源
    最近更新 更多