为什么数据类型“byte”的大小是一个字节?

时间:2014-08-01 22:44:41

标签: c#

我已使用对此进行了标记,但我想,对于其他编程语言,这将是相同的。

好吧为什么一个 bool 确切地说是一个字节,但是一个位可能已经说出 true false ?因为其他位用于在内存中分配对象,对吗?

但是当这是真的时,为什么一个字节(数据类型)确实只有一个字节大?

3 个答案:

答案 0 :(得分:5)

不可能以小于一个字节为单位分配存储器,因为一个字节是可寻址存储器的最小单位。所以bool,虽然它只能由一位表示,但仍占用一个字节的内存。一个byte是一个字节,因为可以是一个字节。没有理由它应该更大。

答案 1 :(得分:1)

bool是一个字节,因为一个字节是可以从内存中读取/写入的最小单元。它不是实例化类的意义上的“对象”,而是一种原始类型。其他位在某种意义上是“浪费”,但它简化了编译器对变量的访问。

字节数据类型恰好是一个字节大,因为使用它的人通常想要访问可用的最小可用内存单元。它也是一种原始类型,因此没有“对象”开销。

答案 2 :(得分:0)

由于现有硬件,它必须具有如何在内存中表示和检索数据的低级语义。如果您有兴趣,请查看以下内容

- Byte

  

字节/baɪt/是计算和电信中的数字信息单元,通常由8位组成。从历史上看,字节是用于编码计算机1中单个文本字符的位数,因此它是许多计算机体系结构中最小的可寻址内存单元。

- Data Structure Alignment

  

数据结构对齐是数据在计算机内存中的排列和访问方式。它由两个独立但相关的问题组成:数据对齐和数据结构填充。当现代计算机读取或写入存储器地址时,它将以字大小的块(例如,32位系统上的4字节块)或更大的块来执行此操作。