|
|
1
210
因为每个C++数据类型必须是可寻址的。 如何创建指向单个位的指针?你不能,但是你 可以 创建指向字节的指针。因此,C++中的布尔值通常是字节大小的。(也可能更大。这取决于实现。最主要的是它必须是可寻址的,所以没有C++数据类型可以比字节小。 |
|
|
2
38
内存是字节可寻址的。如果不移动或屏蔽从内存中读取的字节,就无法寻址单个位。我想这是一个很大的原因。 |
|
|
3
18
一
对内存的访问总是以“块”(多个单词,这是为了 硬件级别的效率 ,总线事务):在大多数CPU系统中,布尔位不能“单独”寻址。当然,一旦数据包含在 登记 ,通常有专门的指令来独立地操作位。
因此,使用
“比特包装”
为了提高使用“布尔”基数据类型的效率。一种技术,如
更新的
:由于一次精彩的讨论,我注意到
|
|
|
4
6
关于8位是可寻址的最小内存量的答案是正确的。但是,有些语言 可以 在某种程度上,使用1位作为布尔值。我似乎记得帕斯卡将集合实现为位字符串。也就是说,对于以下集合:
您可能在内存中有这个:
当然,如果你想要的话,你可以在C/C++中做类似的事情。(如果你在跟踪一堆布尔人, 能够 有道理,但这取决于具体情况。) |
|
|
5
1
我知道这是旧的,但我想我会投入我的2美分。 如果您将布尔值或数据类型限制为一位,那么您的应用程序将面临内存中断的风险。如何处理内存中只有一个位长的错误统计信息? 我去参加了一次面试,项目负责人对我说的一句话是:“当我们发送发射导弹的信号时,我们只需通过无线发送一个简单的一点开一点关。”发送一个比特的速度非常快,我们需要尽可能快的发送该信号。” 好吧,这是一个测试,看我是否理解概念、位、字节和错误处理。一个坏人发一点味精多容易啊。或者如果在传输过程中比特被反方向翻转会发生什么。 |
|
|
6
1
一些嵌入式编译器具有用于位封装布尔标志的int1类型(例如用于微芯片MPU的c c s系列c编译器)。设置、清除和测试这些变量使用单指令位级指令,但编译器不允许任何其他操作(例如获取变量的地址),原因见其他答案。 |
|
|
tender · 基于布尔限定符的Python熊猫if语句 8 年前 |
|
|
user3663055 · 尽管有适当的布尔值,但代码不会打印 8 年前 |
|
|
merko · 检查布尔值-Javascript 8 年前 |
|
|
user6631314 · IOS/核心数据/目标-C:使用布尔值预测 8 年前 |
|
|
user1032531 · 符号极性的自然键 8 年前 |
|
|
Bartholomas · Python语句中的布尔逻辑 8 年前 |
|
|
Dustin Michels · 理解字符串的真实性 8 年前 |
|
|
user44840 · 熊猫数据帧阈值--如果超过,则保持数字固定 8 年前 |