【问题标题】:Is there a constant something like bits_in_byte (8)?是否有类似 bits_in_byte (8) 的常量?
【发布时间】:2016-04-08 10:51:51
【问题描述】:

C/C++ 标准常量中是否存在反映一个字节 (8) 中有多少位?类似于 CHAR_BIT 但用于字节的东西。

【问题讨论】:

  • 这就是CHAR_BIT 告诉你的。一个字符就是一个字节。
  • 我认为明智的做法是假设一个字节是 8 位。因为那样的话你的程序会在它不是的系统上崩溃:这是对使用此类系统的人的适当惩罚。
  • 或使用static_assert(8 == CHAR_BIT); 只是移动就是等待发生的安全问题。
  • @Simple 虽然 C 标准没有定义字节是否必须是八位字节,但 POSIX 确实要求一个字节是八位字节,因此您不太可能遇到这种情况t true(不包括嵌入式,在某些情况下确实如此)。
  • @Brans Ds 一个字节不是 8位。一个八位字节是 8 位。一个字节也可以是 4 位或 16 位。

标签: c++ c byte constants bit


【解决方案1】:

根据 C 标准,char 是一个字节。因此CHAR_BIT是一个字节的位数。

C 标准说CHAR_BIT“不是位域(字节)的最小对象的位数”

【讨论】:

    猜你喜欢
    • 2010-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-21
    • 1970-01-01
    • 2021-10-22
    相关资源
    最近更新 更多