【发布时间】:2010-10-16 20:03:59
【问题描述】:
最近被this question搞糊涂了。可能是因为我没有阅读语言规范(这是我的错,我知道)。
C99 标准没有说明编译器应该使用哪种负数表示。我一直认为存储负数的唯一正确方法是二进制补码(在大多数情况下)。
所以这是我的问题:您知道任何现代编译器默认实现补码或符号幅度表示吗?我们可以用一些编译器标志来改变默认表示吗?
确定使用哪种表示的最简单方法是什么?
C++ 标准呢?
【问题讨论】:
-
我猜你可以通过检查有符号值的二进制表示来确定使用哪个实现,类似于字节序检查的完成方式。这可能在#define 中完成并在编译时进行评估。
-
我的意思是,如果您在过去 6 年中没有解决这个问题。 :o
标签: c++ c compiler-construction representation negative-number