【发布时间】:2013-03-28 15:05:24
【问题描述】:
我需要将一个布尔值打包成一个字节。字节可以包含这些字符之一。
(0 到 9 和 A 到 F)即十六进制字符。
我相信这些字符基本上占用 7 位,那么我们如何利用第 8 位来存储布尔值并在稍后阶段检索两者?
【问题讨论】:
-
7 位?对我来说看起来像 4 位。
-
也许你可以使用
uint8_t。 -
这样做的目的是什么?我之所以这样问,是因为对于一个典型的应用程序,很少需要如此高效的存储(而不是说,
std::pair<bool, char>),这样做会使您的代码更难阅读,在某些情况下执行更慢。