【问题标题】:Why must the size of a byte be 8 bits? [duplicate]为什么一个字节的大小必须是 8 位? [复制]
【发布时间】:2014-04-10 05:53:00
【问题描述】:

我是编程新手。

我想知道为什么字节是 8 位?为什么一个字节不能扩展为 n 位而不是占用 8 个字节变成 64 位?

谢谢!

抱歉,我的问题措辞不正确。 Windows 写入文件时,最小的可能是 8 位字节。为什么不能超过这个?

我假设 char_bit 在内存进程中。写出的文件仍然是一个 8 位的字节,是吗?

【问题讨论】:

  • 如果您search,您会发现很多其他已回答的问题。 123.
  • 查看What is CHAR_BIT? 以获得更多说明。
  • 这一切都归结为这个问题:“我的系统可以处理的最小数据单位是什么?”即使 x86_64 机器将具有 64 位通用寄存器,寄存器和内存仍然是字节可寻址的,其中一个字节是 8 位。这形成了CHAR_BIT 的定义,如下所述。
  • 一些德州仪器 CPU 有 16 位作为最低可处理单元;它们不能加载、存储或处理字节,只能加载 16 位字。低级 CPU(用于廉价电视遥控器)每个单元使用 4 位而不是 8 位。
  • 一个重要的约束来自 C 内存模型:数组的不同元素是不同的访问位置,两个不同数组元素的并发、无序访问被定义为不是数据竞争。将此应用于char 数组,您会发现硬件必须支持对单个字节的访问,而无需发明写入,这会限制字节的大小。

标签: c assembly


【解决方案1】:

实际上可以——一个字节中的位数是CHAR_BIT,大多数时候是8,但不是必须的。

【讨论】:

  • @user4815162342 是的 - “字节 - 数据存储的可寻址单元,大到足以容纳执行环境的基本字符集的任何成员”
  • @user4815162342 和“不是位域(字节)CHAR_BIT 的最小对象的位数”
猜你喜欢
  • 2017-01-03
  • 2011-12-12
  • 1970-01-01
  • 2017-07-30
  • 2011-07-06
  • 1970-01-01
  • 2018-06-09
  • 1970-01-01
  • 2019-05-30
相关资源
最近更新 更多