作者xiaoa (没有灵魂的人)
看板ask-why
标题Re: [请益] 为什麽电脑资料要用16进位
时间Wed Jun 3 01:12:04 2009
※ 引述《kenin (风起云涌)》之铭言:
: 标题: [请益] 为什麽电脑资料要用16进位
: 时间: Tue Jun 2 22:30:34 2009
:
: 我知道电脑本身所读取的都0跟1
: 而在储存资料时为何要用16进位而不用8进位或32进位
: 如果电脑储存时改用8进位或32进位会有什麽差别
:
:
: --
:
※ 发信站: 批踢踢实业坊(ptt.cc)
: ◆ From: 122.123.169.247
: → leoblack:16进位是否是指"有16个栏位可以纪录1/0的资讯"?! 06/02 22:34
: → kenin:8进位=3个bit 16进位=4bit 32进位=5bit 06/02 22:39
: → yhliu:有的电脑系统是采用8进位的, 当然基础仍是2进位. 06/02 22:45
: → sitos:糟... 我连问题都看不懂. 06/02 23:40
: 推 ot32em:应该跟组合语言的 BYTE(1byte), WORD(2byte), DWORD(4byte) 06/02 23:46
: → ot32em:怎麽样也不会 DWORD会来个2.25byte 有点不太乾跪~ 06/02 23:47
: 推 HuangJC:一切都是人类的解释,不过我们沟通时想要有共通的专有名词 06/02 23:54
: → HuangJC:一般来说,5V为1,0V为0 ; 但事实上 5V为0,0V为1 亦无不可 06/02 23:55
: → HuangJC:因为开关明显有两态,所以我们发展了二进位数学,并且贯串 06/02 23:56
: → HuangJC:CPU 内部的运算系统;但事实上3进位也可以用,多加个 -5V XD 06/02 23:57
: → HuangJC:只是..用了三进位,你就独门独户了..要怎麽和别人谈? 06/02 23:57
: → xiaoa:要看是什麽"资料"吧.... 现在的系统不是多采用32bit吗? 06/03 00:12
: 推 HuangJC:2'进位'和 32'位元' 是两回事;我们讨论'逢2进位'这事就好 06/03 00:16
: → xiaoa:JC说的不对吧...半导体做不到3进位, 只能从2bit降下来, 这样 06/03 00:17
: → xiaoa:难怪 板主说问题都看不懂..... 06/03 00:17
: → HuangJC:32位元是指有32个2进位的数字;最後..3进位有用,看怎麽解读 06/03 00:18
: → HuangJC:我们先讲完课本上有的东西,因为那是想统一大家字眼的基础 06/03 00:19
: → xiaoa:原PO说的16进位就是4bit. 他自己推文不是说了....... 06/03 00:20
: 推 HuangJC:他的说法是对的,只是同时混用'位元'和'进位',有人搞混了 06/03 00:26
: → HuangJC:所以把字眼再单纯化,说电脑只懂二进位,会比较好谈 06/03 00:27
: → xiaoa:原PO不是问,为何单位元不是3进. 是问,为何用4位元,不用3、5 06/03 00:30
: → xiaoa:3楼不是说了吗...... 06/03 00:31
我不能很精准的回答原PO的问题
而我只是略懂, 所以有错勿怪
--回应JC大--离题离很大--
目前, 电脑所用的运算单元是由半导体电路组成的
对电路来说, 电流是类比讯号, 要多少进位都不是问题
但基本上, 我们为了要运算, 必须在电路上增进"开关"
这些开关, 便是半导体
每一个半导体都能很直接的代表 开 和 关, 即 一个二进位的一位数字
试问半导体是不是可以表示 三进位?
假设今天有 0V, 5V 10V, 半导体 在5V时导通
一个半导体无法分辨 5V 和 10V的差别. 也许电流大一点, 但它就是无法分辨
这时, 如果我们使用 二个半导体 + 适当的电路设计, 我们就能分辨 0,5,10的差别
所以, 接论是:
半导体能够表示三进位
但是这里有个漏洞
我们使用了二个半导体
二个半导体实际上能代表四进位
我们却只用了三个数字, 那其不是浪费??
这就是为甚麽电脑多是以二进位做为基础,4进位,8进位,16进位的运算
如果电子仪器的设计, 其运算单元并非半导体, 那它不是2进位并不奇怪
希望这样有回答到 JC大
--原PO的问题--
在早时候, 半导体晶元还很大
运算时要尽量节省, 所以要用较少的 bit来代表一个"字元"
(PS: 在硬体上会预留空间给字元, 也就是资料为01, 4bit硬体只能以 0001 表示)
但是, 字元有必要为人所容易理解的介面(要不然谁看得懂101010110是啥鬼)
例如早期的文字是使用 8bit(更早期没有文字就只用4bit罗)
那时候根本只有美国做为主流,在开发、应用电脑, 8bit就足够了
後来多国语言加入 8bit逐渐被淘汰
这其中还牵涉到转换
机械语言 <-> 低阶语言 <-> 高阶语言
机械语言就是 10101
高阶语言是各种程式编写码
低阶语言是...不知道怎麽减略说明
http://0rz.tw/323hv
不知道是那一个部分在使用 4bit, 或者说现在还在使用
我只知道现在集成电路技术、高阶语言都很发达, 很阔气的使用32bit、64bit
Orz
这问题常常到处有人讨论, 建议原PO到处爬爬文看看 (我自己也没爬文....逃~)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.244.42
1F:推 HuangJC:你也说了,不是做不出来,是成本考量;而成本考量一直在变 06/03 01:16
2F:→ HuangJC:我说的是真的,不过最後总会出现主流啦;没看过规格大战吗? 06/03 01:16
3F:→ HuangJC:如果成本考量是很单一的答案,就不会有规格大战了 06/03 01:17
你要看做成本也可以. 我觉得这只是有没有充分利用的问题
这样看就懂了
10进位 2进位 2进位模拟3进位
0 0 00 -> 0
1 1 01 -> 1
2 10 10 -> 2
3 11 100 -> 10
4 100 101 -> 11
9 1001 10000 -> 100
10 1010 10001 -> 101
3进位每个byte是由二个2进位位元组成
这种转换,在数字越来越大时,
如10进位的10, 用 2进位模拟3进位的结果,
> 10进位 2进位 2进位模拟3进位
> 10 1010 10001 -> 101
^^^^^
如果10001,当成真正的2进位,看在10进位中是17
在拟3进位中却只能代表10, 足足有 7/17的无意义位元....
※ 编辑: xiaoa 来自: 140.112.244.42 (06/03 01:41)
4F:推 HuangJC:多位元CPU到後来,用几颗电晶体是一种成本;但有几根脚也是 06/03 01:27
5F:→ HuangJC:当联外脚位不够,就可能动脑筋想到奇奇怪怪的组合上去 06/03 01:28
6F:推 HuangJC:不过为了和传统理论结合,一般还是用二进位*多位元解读 06/03 01:30
7F:→ HuangJC:所谓'电脑用x进位'这样的字眼是很麻烦的,业者会轻轻带过 06/03 01:31
8F:推 HuangJC:不会..会直接开发三态电晶体线路,没那麽多浪费 06/03 01:45
9F:→ xiaoa:你把那些东西拿来利用,它就不再是3进位了, 是2进位... 了不? 06/03 01:47
10F:推 HuangJC:你去看我上一篇修文吧,这个是有在用的,只差我背不出IC型号 06/03 01:48
11F:→ xiaoa:因为你的系统始终是基於 2进位的基础.... 06/03 01:48
12F:→ HuangJC:它不是浪费,倒是种创意;但未接触该领域前我们不提,因为其 06/03 01:49
13F:→ HuangJC:他东西已经读得快爆肝了,不会一次都和你提 06/03 01:50
14F:→ HuangJC:这里有编码的啦..不是基於2进位;担心编码拖慢速度就好 06/03 01:50
15F:→ HuangJC:所以把速度当成一种成本,再混进去,一路规格大战下来~ 06/03 01:51
16F:→ HuangJC:应该说,二进化存在你的电脑萤幕上,方便你解读;但你如果拿 06/03 01:52
17F:→ HuangJC:一根探针插进电路想读到二进位..我怕现在电脑不单纯了 06/03 01:53
18F:→ HuangJC:所以二进位?那都是在萤幕上,方便你想像的 06/03 01:53
你想太多了....一切都半导体惹的祸
现在想要开发量子电脑就是希望破除半导体这样的拘限
量子电脑强并不是因为量子很小, 而是因为量子运算单元可以拥有 0 1 以外的态
※ 编辑: xiaoa 来自: 140.112.244.42 (06/03 02:47)
※ 编辑: xiaoa 来自: 140.112.244.42 (06/03 02:51)
19F:推 HuangJC:这句话拷贝到了字眼,没拷贝到精神.. 06/03 02:50
20F:→ HuangJC:要拥有 0 1 以外的态,不必到量子,我们就办到了 06/03 02:50
21F:→ HuangJC:如果我今天给你的挑战是'把 CPU 联外接脚减半',那就有趣了 06/03 02:51
22F:→ HuangJC:一根接脚只能代表 0 或 1? 不..要代表四种电压我也想试试 06/03 02:51
23F:→ HuangJC:但回到抽象概念,四种电压你可以想像成2bit,所以这样想就好 06/03 02:52
24F:→ xiaoa:有CPU是半导体以外的东西做的,请告诉我,谢谢 06/03 02:52
25F:→ HuangJC:我是说,用半导体就做到了;所以何必改材料呢? 06/03 02:53
26F:→ xiaoa:如果你是增加运算单元的体积, 那跟增加运算单元是一样的.... 06/03 02:54
27F:→ xiaoa:去写论文吧. 我等你 ~>.^ 06/03 02:55
28F:推 HuangJC:接脚空间愈来愈不够用,而CPU内部却愈做愈密;新的成本问题 06/03 02:56
29F:→ HuangJC:你看懂我上一句就够了,干麻有论文.. 06/03 02:56
你只告诉我, 半导体除了体现"通电"和"不通电"以外, 还有什麽第3态就够了
真的也不必写什麽论文
※ 编辑: xiaoa 来自: 140.112.244.42 (06/03 02:59)
30F:→ HuangJC:接脚不够的一个方法,是重覆使用接脚(分时态),但要加快时脉 06/03 02:58
31F:→ HuangJC:而加快时脉也是一种成本;反正就一直竞争啦~ 06/03 02:58
32F:→ HuangJC:但不变的是,中央单元像一堆写好的副程式,已经有很多成品 06/03 02:59
时脉数再怎麽增加、改变,
每一次的运算仍然是2进位的半导体在做......
※ 编辑: xiaoa 来自: 140.112.244.42 (06/03 03:01)
33F:→ HuangJC:(硬体描述语言)所以很少人会自找麻烦,写不一样的东西 06/03 03:00
34F:→ HuangJC:我刚不是说了,-5,0,+5 这三种电压就可以三态了吗? 06/03 03:01
我上面说过了, 请问你的第三态是什麽?
半通电? 超通电? 非常不通电?
※ 编辑: xiaoa 来自: 140.112.244.42 (06/03 03:03)
35F:→ HuangJC:我们不会让这想法入侵到中央单元,你写组语也开心的当2进位 06/03 03:02
36F:→ HuangJC:就好;但是周边,或晶片间,那就各显神通了 06/03 03:03
37F:推 pureblue:我认为Xia不必再回,这非本行的容易聚焦错误。 06/03 09:32
38F:→ pureblue:Xia你讲的够清楚了,真想知道,白色算盘本念通就行。 06/03 09:33
39F:推 freef1y3:现在的CPU都是用二进位为主的逻辑闸兜出来的吧 06/03 09:54
40F:→ freef1y3:如果要用三进位可能整个逻辑系统都要重新发展.. 06/03 09:55
41F:→ HuangJC:对,是成本的问题;但在特殊用途或非主流时还是看得到 06/03 10:13
42F:→ HuangJC:目前就算内部不是这样做,在抽出介面时还是会做成这样子 06/03 10:14
43F:→ HuangJC:到最後我们无法以 bus 宽度来当标准,可能是以 ALU 当标准 06/03 10:15
44F:→ HuangJC:那 ALU 是以二进位运算吗?(比如加法,是一个一个位元叠加?) 06/03 10:16
45F:→ HuangJC:也不是,事实上多位元叠加用查表比较快;但你毕竟可以用位元 06/03 10:17
46F:→ HuangJC:叠加来理解它.那我们又以ALU能控制的最小单元来定义吗? 06/03 10:17
47F:→ HuangJC:如果我们用 CPU 边界接脚来定义,那怎麽又对混合型 IC 视而 06/03 10:19
48F:→ HuangJC:不见?我用过18条位址线的 IC,一道指令就发出 SIN 波 06/03 10:20
49F:→ HuangJC:这个是专用用途 DSP,数位及类比 IC 的混合 06/03 10:21
50F:→ HuangJC:更妙的是现在烧录 IC 大行其道,可以取得授权自己烧.. 06/03 10:22