【问题标题】:Create a 10-bit data type in C/C++ [closed]在 C/C++ 中创建 10 位数据类型 [关闭]
【发布时间】:2016-05-28 10:50:55
【问题描述】:

可以创建 10 位数据类型吗?我可以使用uint16_tuint32_t 等等,但如果我想使用uint10_tuint12_t 怎么办?这可能吗?

【问题讨论】:

标签: c++ c types


【解决方案1】:

你不能有一个大小不是字节倍数的类型 - 所以创建一个 10 位数据类型是不可能的。

您可以创建一个表示包含 10 位的实体的类型:无论是使用 std::bitset<10> 还是在 16 位类型中使用 10 位位域:

struct uint10_t {
    uint16_t value : 10;
    uint16_t _     : 6;
};

在这两种情况下,类型本身都将大于 10 位。因此,例如,您将无法创建一个包含 8 个字节的数组来容纳 10 个字节。

【讨论】:

  • IIRC,未使用的位域成员不必命名。 (实际上,它甚至不需要包含在内)
  • 如果一个字节有10位,这没问题:-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多