Re: [請益] 為什麼電腦資料要用16進位
10010010 左邊叫做有八個位元的2進位
我們可以把它看成
92 兩個16進位的數字
這是解釋的問題,我溝通時會接受很寬的表達方式
如果有人要說電腦懂 16進位,我無所謂
不過如果要拿去考試拿不到分數,就別怪我了 XD
一般來說,我們說電腦基本上只懂二進位
這種說法其實和你能摸到的 UI 有關
一般來說從前從 basic 學起,看不到二進位,會以為電腦和人一樣懂十進位
why not? 中間的細節被包起來了
但電腦的發展史上,畢竟從組合語言開始把抽象電路邏輯抽出,變成程式
而且 basic 的轉換效率不高,當你要壓搾 CPU 速度時,就得開始了解二進位
組合語言裏一堆二進位指令;你鑽入細節愈多,能壓搾出的效率愈好
而寫程式時,自己從頭寫指令很慢,有別人的函式庫會快很多
組裝電腦也一樣,一堆 IC 都是二進位,你最好也再接一顆二進位上去
和別人不同,你的系統會很難過,很難發展
3進位存不存在呢?有..
但它不是中央系統,大概在週邊
它也沒有整套的數學運算及相關指令
所以我們能不能說電腦懂3進位呢?不行
不過週邊有稍微用一點啦
通常我們不說3進位,可能說3態
但是考慮兩個3進位數字可表達的狀態,可以看到有趣的東西
00
01
02
10
11
12
20
21
22
以上就是三進位的九種變化,所謂三進位是逢三進位
2的三次方有八種變化,所以三進位的兩個數字可以完全涵蓋2進位的3個數字
00 000
01 001
02 010
10 011
11 100
12 101
20 110
21 111
22 保留
這多的一個保留很好用,可以當做控制,例外等等;或者安插同位元檢測
在通訊上真的有這樣用
那我要不要把三進位做進 CPU 裏呢?
免了吧,大家發展二進位那麼久了,沒人和你一樣的事會很累..
半導體做不到三種變化?
這你可不能這樣說
我們知道,電腦的電源供應器上供應幾種電壓
+5,-5,+12,-12,以及接地(0V)
所以用 +5,0,-5 來表達 0,1,2 是很容易的
IC 一定做得出來
剩下的應該就是什麼成本效益的問題了
我為什麼要這樣做,成本會不會反而拉高等等
但在週邊,在通訊,考量的不一樣
那就真的有這樣做
;;
再來我們談到儲存
最前面一段,我說'電腦懂2進位或16進位的講法,我無所謂'
但我得擔心考試時老師給不給分
一般我們說一個 64K 定址的小系統 (比如從前的八位元電腦)
這意思可能是我的定址能力為
64K * 1 Byte <== 這其實是 CPU 觀點
就 RAM 來說,經常規格不是用 byte 來開,而是用 bit
所以你說 64K*8= 512K bit 也可以
只要你供應我一顆 512K bit 的 RAM,我就夠用了
而這 512K bit 如果被連接到一台 16位元電腦,會發生什麼事?
所謂 16位元是指我定址一次,希望取回 16位元
所以 512K/16= 32K
也就是說這顆 RAM 足夠讓 CPU 定址前 32K 的16位元空間
至於這 RAM 怎麼安排接腳讓一次 16個資料位元出現,那是另一回事了
有的 RAM 就是安排數種模式,讓定址法可以多樣化
所以 RAM 的規格真的是開 bit 為主
你愛怎麼解釋電腦用幾進位來儲存資料..就看你怎麼解釋,講不講得通
不過我還是習慣說電腦用二進位儲存資料,一次存幾位元
而不會說用幾進位
這裏 '位元' 和 '進位' 混用,會頭痛的..
所以得看原 PO 要不要修正字眼重問一次
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.59.179.152
※ 編輯: HuangJC 來自: 61.59.179.152 (06/03 01:04)
推
06/03 02:23, , 1F
06/03 02:23, 1F
→
06/03 02:35, , 2F
06/03 02:35, 2F
→
06/03 02:39, , 3F
06/03 02:39, 3F
→
06/03 02:39, , 4F
06/03 02:39, 4F
→
06/03 02:40, , 5F
06/03 02:40, 5F
→
06/03 02:41, , 6F
06/03 02:41, 6F
→
06/03 02:41, , 7F
06/03 02:41, 7F
→
06/03 02:43, , 8F
06/03 02:43, 8F
→
06/03 04:08, , 9F
06/03 04:08, 9F
→
06/03 04:09, , 10F
06/03 04:09, 10F
→
01/06 23:39,
7年前
, 11F
01/06 23:39, 11F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 7 篇):
請益
8
31