作者HuangJC (吹笛牧童)
看板ask-why
標題Re: [請益] 為什麼電腦資料要用16進位
時間Wed Jun 3 02:33:12 2009
其實電腦系統並不是一切都按 2的 N 次方成長的
只是規格大戰的結果,看誰獲勝
舉例來說,從前的8位元 CPU 有 16條位址線
進到 16 位元電腦時,有 20 條位址線
為什麼不用 32 條?
事實上 32 條也設計得出來
但人家設計 20 條並且行銷成功,那..就流行啦~
一個 byte 有 8個 bit,曾不曾惹過麻煩?
有沒有聽過有些系統只認得七位元?
為什麼這麼怪咧...
可能是夠用就好,可能是保留一個當同位元檢測
也許有人說保留同位元檢測的話,其實骨子裏是八位元,因為那個同位位元你又不能不儲存
那...真正的八位元系統再保留同位位元
你要不要叫它九位元系統? XD
事實上現在沒那麼麻煩,同位位元不儲存了
所以當年有把 RAM 上面偷拔一顆 IC 而 user 不會發現的故事
而這種內部細節 user 不必懂
你就當那是 八位元,就可以學得很好
因此,問題其實應該限縮為 '我為什麼感覺電腦儲存 16 位元'
注意到,是'感覺'
事實上電腦怎麼儲存,已經不見得真的是那樣了
在一個 byte 之前,其實四位元一組是流行過的
因為在16進位到10進位間,還流行過一個 BCD 編碼
http://zh.wikipedia.org/wiki/二進碼十進數
BCD 編碼一次就要動用四位元,三位元還不夠用
用一個16進位來模擬10進位,它有極大的浪費
所以對於儲存方式的浪費,我們很在乎嗎?我不認為
而是整個競爭的結果,最後有了暫時的統一
而兩個四位元,也就是八位元了
這次整個業界還算統一,用乘2的方法在發展
但如果你扣掉同位位元,看到七位元系統的存在
老實說,它是帶來些麻煩
不過它真的存在
對學組合語言的人來說,也許他認為,能被我用 CPU 定址到的才叫'電腦的認知'
那麼(或許)並沒有七位元資料匯流排的電腦
不過那並不是設計不出來
可能只是規格大戰的結果罷了
而對於一些撰寫多單元系統的人來說,他所看到的不只 CPU 的認知
他所要運用的機械語言也不只 CPU 的那一種
我們會用盡方法去想像,描述
不過在討論之前會先統一一下字眼
主 CPU 一定是用八(的倍數)位元系統嗎?
我..不確定
不過會盡量朝這方向設計就是了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.59.179.152
→ xiaoa:多少bit 和 多少進位 是不同的喔. 你搞混了吧..... 06/03 02:43
→ HuangJC:就是怕搞混,所以我說統一講電腦認得2進位就好 06/03 02:44
→ HuangJC:我這次的文,只有 BCD 那段用到16進位. 06/03 02:45
→ HuangJC:而且,不用二進位的話,其實不能用 bit 這個字眼 06/03 02:46
→ HuangJC:前面我舉週邊用的三進位,這時它不能用 bit 喔~ 06/03 02:46
→ xiaoa:難怪PrinceBamboo說你扯...... Orz 06/03 03:05
→ HuangJC:我說了,我們先討論課本上的就好;但原PO字眼混用呀.. 06/03 03:22
→ HuangJC:你放心,三進位我是在講義上看到的,不是我發明的 06/03 03:24
→ HuangJC:事實上,為何不用八進位,為了 BCD 編碼是個很好的答案 06/03 03:28