san*_*orn 13 c++ language-lawyer c++20
根据P1236R1,现在整数类型用数字定义,不再用位.
type minimum range exponent N
signed char 8
short 16
int 16
long 32
long long 64
Run Code Online (Sandbox Code Playgroud)
而不是定义标准仍然缺乏的"位"的含义,C++选择不这样做,而是在术语中定义那些类型range exponent
.
为什么?
为什么不依靠"bit"这个词更好?
这个提案中有哪些"不可观察的位"?
P1236R1是C++ 20的一部分
Flo*_*mer 13
根据ISO规则,ISO C++委员会的审议是私密的,不能与整个编程社区共享.该委员会发布了有关此事的以下信息(问题1857):
2014年6月会议记录:
CWG决定重新制定操作本身的描述,以避免引用比特,将定义"比特"等更大的问题分开以发布1943以供进一步考虑.
问题1861包含类似的语言.
我不存在本次会议,但位具有已经在定义的ISO/IEC 2382(这是C++标准的规范参考):
位
二进制数字
在二进制系统中使用时,数字0或1中的任何一个
这个定义显然不适合C++标准中的许多潜在用途,例如谈论符号位(这意味着在类型/字中的特定位置处的位)或整数类型的宽度(以位为单位).