将小数转换为 2 的补码
Converting decimal to 2's complement
我正在研究将十进制数转换为 2 的补码二进制数。
我理解这个概念;
- 将数字转换为十六进制(基数 16)
- 将结果转换为二进制(填充到 8 位)
- 反转所有位并加 1
所以我一直在尝试转换 92(base 10)
92 -> Hex = 5c
5C == 5 12 -> Binary = 01011100
Inverting = 10100011
+ 1
=10100100
但是我用来检查答案的在线转换器说:01011100
我做错了什么?我知道最高有效位应该是 0,因为数字是正数。但除此之外,我很困惑。
更新
这是因为正数不用换符号吗?
所以,做2的补码前后数是一样的吗?
也就是说,我得到的答案是其实是否定的解释; -92?
仅当您尝试表示负数时将其取反并加 1,正数用普通二进制表示。 (你得到的正数范围更小)。
我正在研究将十进制数转换为 2 的补码二进制数。 我理解这个概念;
- 将数字转换为十六进制(基数 16)
- 将结果转换为二进制(填充到 8 位)
- 反转所有位并加 1
所以我一直在尝试转换 92(base 10)
92 -> Hex = 5c
5C == 5 12 -> Binary = 01011100
Inverting = 10100011
+ 1
=10100100
但是我用来检查答案的在线转换器说:01011100 我做错了什么?我知道最高有效位应该是 0,因为数字是正数。但除此之外,我很困惑。
更新
这是因为正数不用换符号吗? 所以,做2的补码前后数是一样的吗?
也就是说,我得到的答案是其实是否定的解释; -92?
仅当您尝试表示负数时将其取反并加 1,正数用普通二进制表示。 (你得到的正数范围更小)。