【发布时间】:2020-03-21 22:14:25
【问题描述】:
例如,
二进制的13是:00000000 00000000 00000000 00001101。 -13 将存储为 10000000 00000000 00000000 00001101 (使用最高有效位表示符号)还是使用二进制补码存储? (特别是在 C 中)
如果使用最高有效位来表示符号存储,那么实际上何时使用二进制补码?
【问题讨论】:
-
C doesn't mandate a particular representation for negative integers。 “是二进制补码......仅用于加减法”的前提没有意义。在对负整数使用二进制补码的系统上,它将用于所有负整数,无论对它们执行什么操作。
-
啊我明白了,我以为二进制补码只在加减时使用,但实际上它用于存储所有负整数。谢谢
-
@TaseenA 改变表示只做一些操作是一个奇怪的想法。注意 10000000 00000000 00000000 00001101 不是 13 的两个补码,它是 111111...1110011
标签: c twos-complement signed-integer