内置数据类型,大小小于1个字节

时间:2011-11-03 14:57:19

标签: memory programming-languages bit-manipulation

大多数强类型编程语言的数据类型为min。 1个字节大小。我知道可以使用位掩码访问单个存储单元,但为什么编程语言不支持小于1字节的数据类型呢?

1 个答案:

答案 0 :(得分:1)

对于具有手动内存管理/地址杂耍的语言,硬件规定了对这些功能的一些限制。很少(如果有的话)架构支持寻址单个位。通常,最小的存储单位是一个字节,因此他们使用它。

使所有地址引用位要么需要大于平均值的地址表示(性能命中 - 对于触及地址的任何内容的指令的两倍)或极大地限制可用的地址空间。添加特殊情况(以及特殊类型的地址)会使语言变得很复杂(注意C有一个相关的,但恕我直言更通用的版本:结构中的位域 - 结构仍然有一个sizeof测量字节,但一个有8个成员的结构可能总体上是一个字节大)。无论如何包含的位操作符允许在用户代码中模拟它。

在根本没有寻址内容概念的高级语言中,大小是实现细节。当然(直接或间接地),实现是在低级语言中,默认为比特上的字节。那个,以及其他要求和限制(例如:对象需要通过指针访问),一般来说(虽然它存在,例如BitVector for Python)暴露一些技巧,如“使用机器字,然后索引位”这样做是不切实际的通过转移/掩盖“实施的语言。