P1236R1:为什么 c++ 标准在定义整数时试图摆脱单词"bit"?



根据p1236r1,现在的整数类型是用数字定义的,不再使用位。

type    minimum range exponent N
signed char     8
short          16
int            16
long           32
long long      64

C 选择不这样做,而不是定义"位"的含义,而是选择不这样做,而是在range exponent的任期内定义了这些类型。

为什么?
为什么最好不要依赖单词" bit"?
该提案中的"不可观察的位"是什么?

P1236R1是C 20

的一部分

根据ISO规则,ISO C 委员会的审议是私人的,无法与整个编程社区共享。该委员会发布了有关此事的以下信息(第1857期):

注释2014年6月会议:

cwg决定重新重新重新制定操作本身的描述,以避免参考位,分散定义"位"等更大的问题,以便进一步考虑。

问题1861包含类似的语言。

我没有参加这次会议,但是 bit 已经在ISO/IEC 2382中有一个定义(这是C 标准的规范参考):

二进制数字

在二进制系统中使用的数字0或1

此定义显然不适合C 标准中的许多潜在用途,例如谈论A sign bit (这意味着在类型/word中的特定位置)或<整数类型的em> width(以位)。

最新更新