C ++:数字与位数?

时间:2015-06-10 12:51:40

标签: c++ boost standards bit digits

我试图理解数字和位之间C ++语言中使用的词汇的区别,如:

CHAR_BIT;
std::numeric_limits<char>::digits;

是否存在概念上的差异?也许对于奇怪的架构? 如果是这样,那将被称为operator[] std::bitset的结果。它是否可以访问一个位或一个数字?

当前的boost文档没有帮助:cppint提供了Digits的代码,但文档提到Bits(这显然是文档的问题,但我不是&# 39;不知道文本或代码是否更新。)

1 个答案:

答案 0 :(得分:1)

来自this std::numeric_limits::digits reference

  

std :: numeric_limits :: digits的值是base-radix中可以由类型T表示而没有更改的位数。对于整数类型,这是不计数符号位的位数。

后来它声明,对于char,结果为CHAR_BIT - std::numeric_limits<char>::is_signed

来自C numeric limits reference

  

CHAR_BIT字节中的位数

对于普通的现代计算机,char为8位,CHAR_BITS等于8digits函数将返回78,具体取决于char是否已签名。

我同意使用&#34;数字&#34;获取整数类型中的位数时有点令人困惑,但它对浮点类型更有意义:

  

对于浮点类型,这是尾数中的位数。

并且std::bitset是一组,因此索引操作符将为您提供集合中选定的