我已使用c#对此进行了标记,但我想,对于其他编程语言,这将是相同的。
好吧为什么一个 bool 确切地说是一个字节,但是一个位可能已经说出 true 或 false ?因为其他位用于在内存中分配对象,对吗?
但是当这是真的时,为什么一个字节(数据类型)确实只有一个字节大?
答案 0 :(得分:5)
不可能以小于一个字节为单位分配存储器,因为一个字节是可寻址存储器的最小单位。所以bool
,虽然它只能由一位表示,但仍占用一个字节的内存。一个byte
是一个字节,因为可以是一个字节。没有理由它应该更大。
答案 1 :(得分:1)
bool是一个字节,因为一个字节是可以从内存中读取/写入的最小单元。它不是实例化类的意义上的“对象”,而是一种原始类型。其他位在某种意义上是“浪费”,但它简化了编译器对变量的访问。
字节数据类型恰好是一个字节大,因为使用它的人通常想要访问可用的最小可用内存单元。它也是一种原始类型,因此没有“对象”开销。
答案 2 :(得分:0)