在C / C ++中创建一个10位数据类型
可以创建10位数据类型吗? 我可以使用uint16_t
, uint32_t
等,但如果我想使用uint10_t
或uint12_t
怎么uint12_t
? 这可能吗?
您不能拥有大小不是字节倍数的类型 – 因此创建10位数据类型是不可启动的。
您可以创建一个表示包含10位的实体的类型:是使用std::bitset<10>
还是使用16位类型的10位位域:
struct uint10_t { uint16_t value : 10; uint16_t _ : 6; };
在这两种情况下,类型本身都将大于10位。 因此,您将无法创建一个包含8个数组的数组,以适应10个字节。