为什么一个字节是8位而不是16、32

u010348892 2013-04-23 04:17:29
因为用7位可以表示128个字符,见ASCII码,因此对于无特殊格式的英文字母已经足够了,没有必要16或者32,
当时只考虑到表达英语和必要的控制信息,用7位表示足矣,但从计算机实现和以后扩展考虑,使用了8位,
要是你我制定编码,当然也是越精简越好了
...全文
7164 48 打赏 收藏 转发到动态 举报
写回复
用AI写文章
48 条回复
切换为时间正序
请发表友善的回复…
发表回复
lm_whales 2013-05-06
  • 打赏
  • 举报
回复
当时是位片机,可以自由组合的。 每个芯片一个位的加减乘,寄存器是一位的。
「已注销」 2013-04-28
  • 打赏
  • 举报
回复
顶楼上!同问?
绯红女王 2013-04-27
  • 打赏
  • 举报
回复
额,还真不知道~~
cjoooooo 2013-04-27
  • 打赏
  • 举报
回复
我在想,计算机为什么要用电呢?
franzhong 2013-04-26
  • 打赏
  • 举报
回复
yujie_v 2013-04-26
  • 打赏
  • 举报
回复
我只是来围观的。各种问题吧。
图灵狗 2013-04-26
  • 打赏
  • 举报
回复
认识英文的话,可以看看http://en.wikipedia.org/wiki/Byte,前期4bits/6bits/7bits都是可以基本上认为是byte的概念。
引用 35 楼 mlroom 的回复:
[quote=引用 20 楼 turingo 的回复:] 6bit表示2^6=64种状态,弄明白后再来发表意见。 引用 17 楼 linustd 的回复:引用 1 楼 turingo 的回复:最初一个字节是用4bit和6bit来表示的,后来才发展为用8bit来表示。 你说4bit这有可能, 但是6bit就是胡说了. 6bit浪费资源, 因为你没法用几根电线正好表示6个状态.
是你没有搞明白。[/quote]
mLee79 2013-04-26
  • 打赏
  • 举报
回复
4 6 7 8 9 位的机器都有过, 8位的笑到最后罢了. 到现在C/C++标准也没有定义一个byte到底有几位.
dovsnier 2013-04-26
  • 打赏
  • 举报
回复
mlroom 2013-04-26
  • 打赏
  • 举报
回复
引用 20 楼 turingo 的回复:
6bit表示2^6=64种状态,弄明白后再来发表意见。 引用 17 楼 linustd 的回复:引用 1 楼 turingo 的回复:最初一个字节是用4bit和6bit来表示的,后来才发展为用8bit来表示。 你说4bit这有可能, 但是6bit就是胡说了. 6bit浪费资源, 因为你没法用几根电线正好表示6个状态.
是你没有搞明白。
mlroom 2013-04-26
  • 打赏
  • 举报
回复
再补充两句,一是ASCII的设计是在确定了字节设计后,而不是之前,所以先有的字节,后有的ASCII,因为如果现在的一个字节是4位,那么可以用两个字节来表示,就像现在的UN码一样。 二是为什么字节要按着2的整次方来设计,那是因为数的进制必须是整进位的,如厘米、米、公里都是按照一个基数的某个大整数进位的,所以在计算机世界中所谓的大整数就是2的次方如2、4、8、16、32、64、128...,所以不会出现当8位不够用时,会扩展到9位或10位,而是扩展到16,或32位。
mlroom 2013-04-26
  • 打赏
  • 举报
回复
我想是因为8是2的三次方,所以一个字节要么是2、4、8、16或32,按照当时客观条件及需求,PC机的一个字节被控制在8个位上,我想这也正是CPU、总线、存储器在设计上的最佳模式,否则设计一个具有7位一字节的CPU、总线和存储器是不适时怡的,再换句话说,人类最终使用的十进制也是这个原因,因为人类的硬件(手指)。
编辑器 2013-04-26
  • 打赏
  • 举报
回复
ASCII码使用指定的7位或8位二进制数组合来表示128或256种可能的字符。标准ASCII码也叫基础ASCII码,使用7位二进制数来表示所有的大写和小写字母,数字0到9、标点符号,以及在美式英语中使用的特殊控制字符(这里需要特别注意:ASCII码与标准ASCII码的位数上的区分,标准ASCII码是7位二进制表示)。
wbuzhou 2013-04-26
  • 打赏
  • 举报
回复
多少位数,应该和cpu有关吧
mujiok2003 2013-04-25
  • 打赏
  • 举报
回复
字节不同于字符,字符于编码有关。
完美世界ssrs 2013-04-25
  • 打赏
  • 举报
回复
飘过啦,楼主说的很有道理哦
常如意 2013-04-25
  • 打赏
  • 举报
回复
zy101843 2013-04-25
  • 打赏
  • 举报
回复
这个是由于CPU导致的吧, 一开始intel推出的4 系列的cpu,四位的处理, 后面8系列全是8位了的, 为了方便存储和处理。
何哀何欢 2013-04-25
  • 打赏
  • 举报
回复
最初是4bit
洛洛洛丽塔 2013-04-25
  • 打赏
  • 举报
回复
加载更多回复(26)

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧