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