作者HuangJC (吹笛牧童)
看板ask-why
標題Re: [請益] 為什麼電腦資料要用16進位
時間Wed Jun 3 12:18:46 2009
※ 引述《kenin (風起雲湧)》之銘言:
: 我知道電腦本身所讀取的都0跟1
: 而在儲存資料時為何要用16進位而不用8進位或32進位
: 如果電腦儲存時改用8進位或32進位會有什麼差別
: 其實會問這個問題是對中文內碼可用的變化所連想的
有改文了,其實這段很重要 :)
可以看出你的觀點及用字,才知道真正的問題
: 現在一個中文字以16進位要用2BYTE=16bit=FFFF(16進位)=65536(10進位)個變化
: 如果用32進位同樣是2BYTE=20bit=VVVV(32進位-我不確定是不是V)=1048576(10進位)
這裏還是有用字述題的問題,我可以猜,但還是會猜錯
基本上 bit,byte,已經是二進位專用語了
2byte 永遠是 16bit
建議你改用 digit 這個字眼來表達幾個'數字元'
32進位用 2digit... 你也許是想說這個吧!
: 1bit=一組0跟1的變化
: 若今天要把所有中文都對應一個內碼(包含簡繁體)
: 那目前2BYTE,65536個變化可能不夠(還是有其它的解決方案?)
: 而以數值來看,以四個bit為一組的16進位來記錄數值
: 一個BYTE可以記錄0~255個變化超過255就要再加1BYTE
: 而以32進位的話一個BYTE是用5個bit但可以記錄0~1023個變化
: 在0~255之間,16進位只要用8bit,而32進位要用10bit來記錄
: 若是256~1023之間,16進位要用16bit要記錄,但32進位只要用10bit來記錄
: 比16進位省空間
以上全部要更正字眼再來討論
省空間與否就難說了
前面我討論過三進位,我有強調過它的概念沒進入中央系統,沒進入 ALU
但不代表它沒在週邊使用;這一切看成本
一張光碟片上面的資料,可以用雷射打上去儲存
光碟片就是週邊了,它一定只儲存 0 或 1 嗎?那..就不一定了
我們現在談很多倍存技術就這樣來的
如果我一個光點可以表達上百種值,而且分列清楚,那當然得這樣幹
最後我會設計一顆讀取 DVD 的 IC,那顆 IC 在傳出資料時是二進位
不代表光點真的用二進位儲存;這一切是看成本架構
但如果是一定只存 0 或 1 時
不管你的中文內碼用幾進位,其實沒有意義
因為我會重編碼成二進位才儲存;那沒省到空間
在 BYTE(八位元) 之下有 NIBBLE(四位元)
一個 NIBBLE 就可以代表一個 BCD digit,用來表達十進位很方便
4*2=8,好像我們嫌不夠用就要發展八位元
而買得到的 RAM 組成八位元 BANK 也很方便,別自找麻煩
電腦的主流也傾向一次計算八位元了
不管 16,32,64位元的電腦,它都還保留有八位元的暫存器
這樣能說電腦以 2^8=256進位在運算嗎?
我們還是說它用二進位,八位元 這樣的字眼好了
而且你觀點的改變其實並無法省到空間
我們可以接著談 RAM 的定址法,我原本以為那叫扯遠
但看來那快進入核心問題了
是有省到 digit,而 digit 太長時,打程式會很長
有這個差別而已
一切都在你人為的解釋裏
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.219.65.16
※ 編輯: HuangJC 來自: 61.219.65.16 (06/03 12:26)
→ xiaoa:幹嘛一直談到2+n進位? 看似是有點專業, 但又有點業餘..... 06/03 12:48
→ xiaoa:誰家的光碟用半導體原理做了.....? 06/03 12:49
→ HuangJC:他正在談'省空間',你還是從空間去看吧.. 06/03 13:02
→ HuangJC:另外我覺得他在講的byte是 Address,定址空間,這東西可以省 06/03 17:12
→ HuangJC:其實這些算是系統工程師的工作,幾經辯論,歷史,經驗而成 06/03 17:50
→ HuangJC:如果我們覺得很簡單,想太多,那是不是把自己當得太厲害了點 06/03 17:50
→ HuangJC:就目前結論的了解當然很容易;但當年決策者不見得看得簡單 06/03 17:51
→ HuangJC:原 PO 提出的,是一個'在有框架前的創新',那為何要拿框架 06/03 17:52
→ HuangJC:來綁死,限定唯一的答案? 06/03 17:52
推 wild68:學識不佳不論對錯,很久沒看到能如此侃侃而談 06/04 09:03
→ wild68:又沒有架子,沒有傲口氣的人了,之前看某人的文章 06/04 09:04
→ wild68:雖然他很熱心,不過心裡老是想說他口氣有必要這樣嗎 06/04 09:04