【发布时间】:2012-08-29 21:48:09
【问题描述】:
As we all no doubt know,ISO C 标准(以及 C++,我认为,虽然我对 C 方面更感兴趣)允许有符号数字的三种底层表示:
- 二进制补码;
- 个数的补码;和
- 符号/大小。
维基百科的条目指出,符号/大小在 60 年代的 IBM 7090 上使用,而 PDP-1、CDC 160A 和 UNIVAC 1100 使用的是补码,所有这些都可以追溯到 60 年代。
是否有任何其他具有这些替代表示的 C (或底层硬件)实现,比五十年前更近一些(它们是什么)?
将某些东西保留在不再存在的机器标准中似乎有点浪费。
【问题讨论】:
-
“是的,有人知道非补码实现”是否有资格作为答案? :-)
-
@KerrekSB:只有当你能用证据证明这一点时...... :-)
-
@KerrekSB:用“它们是什么”更新了问题,以说明这一点:-)
-
请注意,从标准中删除非 2 的补码会完全破坏我对所有“你如何看待这个有点玩弄的盛会?”的股票反应。问题,这是为了快速确认它们不适用于 1s 的补码负数。因此,我要么坚决反对,要么坚决支持,但我不确定是哪一个。
标签: c language-lawyer iso negative-number representation