最近我很困惑这个问题 https://stackoverflow.com/questions/700410/subtraction-without-minus-sign/700487#700487。也许是因为我没有阅读语言规范(我知道这是我的错)。
C99 标准没有规定编译器应使用哪种负数表示形式。我一直认为存储负数的唯一正确方法是二进制补码(在大多数情况下)。
所以这是我的问题:你知道现在有哪个编译器默认实现补码或符号数值表示吗?我们可以使用一些编译器标志更改默认表示吗?
确定使用哪种表示的最简单方法是什么?
那么 C++ 标准呢?
我认为这并不是编译器使用什么表示的问题,而是底层机器使用什么表示的问题。编译器会非常愚蠢地选择目标机器不支持的表示,因为这会带来大量的开销而没有任何好处。
IP协议族中的一些校验和字段使用补码,因此也许专用的“网络加速器”型CPU来实现它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)