我试图理解数字和位之间C ++语言中使用的词汇的区别,如:
CHAR_BIT;
std::numeric_limits<char>::digits;
是否存在概念上的差异?也许对于奇怪的架构?
如果是这样,那将被称为operator[]
std::bitset
的结果。它是否可以访问一个位或一个数字?
当前的boost文档没有帮助:cppint提供了Digits
的代码,但文档提到Bits
(这显然是文档的问题,但我不是&# 39;不知道文本或代码是否更新。)
答案 0 :(得分:1)
来自this std::numeric_limits::digits
reference:
std :: numeric_limits :: digits的值是base-radix中可以由类型T表示而没有更改的位数。对于整数类型,这是不计数符号位的位数。
后来它声明,对于char
,结果为CHAR_BIT - std::numeric_limits<char>::is_signed
。
CHAR_BIT
字节中的位数
对于普通的现代计算机,char
为8位,CHAR_BITS
等于8
,digits
函数将返回7
或8
,具体取决于char
是否已签名。
我同意使用&#34;数字&#34;获取整数类型中的位数时有点令人困惑,但它对浮点类型更有意义:
对于浮点类型,这是尾数中的位数。
并且std::bitset
是一组位,因此索引操作符将为您提供集合中选定的位。