【发布时间】:2014-04-10 05:53:00
【问题描述】:
我是编程新手。
我想知道为什么字节是 8 位?为什么一个字节不能扩展为 n 位而不是占用 8 个字节变成 64 位?
谢谢!
抱歉,我的问题措辞不正确。 Windows 写入文件时,最小的可能是 8 位字节。为什么不能超过这个?
我假设 char_bit 在内存进程中。写出的文件仍然是一个 8 位的字节,是吗?
【问题讨论】:
-
查看What is CHAR_BIT? 以获得更多说明。
-
这一切都归结为这个问题:“我的系统可以处理的最小数据单位是什么?”即使 x86_64 机器将具有 64 位通用寄存器,寄存器和内存仍然是字节可寻址的,其中一个字节是 8 位。这形成了
CHAR_BIT的定义,如下所述。 -
一些德州仪器 CPU 有 16 位作为最低可处理单元;它们不能加载、存储或处理字节,只能加载 16 位字。低级 CPU(用于廉价电视遥控器)每个单元使用 4 位而不是 8 位。
-
一个重要的约束来自 C 内存模型:数组的不同元素是不同的访问位置,两个不同数组元素的并发、无序访问被定义为不是数据竞争。将此应用于
char数组,您会发现硬件必须支持对单个字节的访问,而无需发明写入,这会限制字节的大小。