看板 ask-why 關於我們 聯絡資訊
※ 引述《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
HuangJC:你也說了,不是做不出來,是成本考量;而成本考量一直在變 06/03 01:16
HuangJC:我說的是真的,不過最後總會出現主流啦;沒看過規格大戰嗎? 06/03 01:16
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)
HuangJC:多位元CPU到後來,用幾顆電晶體是一種成本;但有幾根腳也是 06/03 01:27
HuangJC:當聯外腳位不夠,就可能動腦筋想到奇奇怪怪的組合上去 06/03 01:28
HuangJC:不過為了和傳統理論結合,一般還是用二進位*多位元解讀 06/03 01:30
HuangJC:所謂'電腦用x進位'這樣的字眼是很麻煩的,業者會輕輕帶過 06/03 01:31
HuangJC:不會..會直接開發三態電晶體線路,沒那麼多浪費 06/03 01:45
xiaoa:你把那些東西拿來利用,它就不再是3進位了, 是2進位... 了不? 06/03 01:47
HuangJC:你去看我上一篇修文吧,這個是有在用的,只差我背不出IC型號 06/03 01:48
xiaoa:因為你的系統始終是基於 2進位的基礎.... 06/03 01:48
HuangJC:它不是浪費,倒是種創意;但未接觸該領域前我們不提,因為其 06/03 01:49
HuangJC:他東西已經讀得快爆肝了,不會一次都和你提 06/03 01:50
HuangJC:這裏有編碼的啦..不是基於2進位;擔心編碼拖慢速度就好 06/03 01:50
HuangJC:所以把速度當成一種成本,再混進去,一路規格大戰下來~ 06/03 01:51
HuangJC:應該說,二進化存在你的電腦螢幕上,方便你解讀;但你如果拿 06/03 01:52
HuangJC:一根探針插進電路想讀到二進位..我怕現在電腦不單純了 06/03 01:53
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)
HuangJC:這句話拷貝到了字眼,沒拷貝到精神.. 06/03 02:50
HuangJC:要擁有 0 1 以外的態,不必到量子,我們就辦到了 06/03 02:50
HuangJC:如果我今天給你的挑戰是'把 CPU 聯外接腳減半',那就有趣了 06/03 02:51
HuangJC:一根接腳只能代表 0 或 1? 不..要代表四種電壓我也想試試 06/03 02:51
HuangJC:但回到抽象概念,四種電壓你可以想像成2bit,所以這樣想就好 06/03 02:52
xiaoa:有CPU是半導體以外的東西做的,請告訴我,謝謝 06/03 02:52
HuangJC:我是說,用半導體就做到了;所以何必改材料呢? 06/03 02:53
xiaoa:如果你是增加運算單元的體積, 那跟增加運算單元是一樣的.... 06/03 02:54
xiaoa:去寫論文吧. 我等你 ~>.^ 06/03 02:55
HuangJC:接腳空間愈來愈不夠用,而CPU內部卻愈做愈密;新的成本問題 06/03 02:56
HuangJC:你看懂我上一句就夠了,幹麻有論文.. 06/03 02:56
你只告訴我, 半導體除了體現"通電"和"不通電"以外, 還有什麼第3態就夠了 真的也不必寫什麼論文 ※ 編輯: xiaoa 來自: 140.112.244.42 (06/03 02:59)
HuangJC:接腳不夠的一個方法,是重覆使用接腳(分時態),但要加快時脈 06/03 02:58
HuangJC:而加快時脈也是一種成本;反正就一直競爭啦~ 06/03 02:58
HuangJC:但不變的是,中央單元像一堆寫好的副程式,已經有很多成品 06/03 02:59
時脈數再怎麼增加、改變,每一次的運算仍然是2進位的半導體在做...... ※ 編輯: xiaoa 來自: 140.112.244.42 (06/03 03:01)
HuangJC:(硬體描述語言)所以很少人會自找麻煩,寫不一樣的東西 06/03 03:00
HuangJC:我剛不是說了,-5,0,+5 這三種電壓就可以三態了嗎? 06/03 03:01
我上面說過了, 請問你的第三態是什麼? 半通電? 超通電? 非常不通電? ※ 編輯: xiaoa 來自: 140.112.244.42 (06/03 03:03)
HuangJC:我們不會讓這想法入侵到中央單元,你寫組語也開心的當2進位 06/03 03:02
HuangJC:就好;但是週邊,或晶片間,那就各顯神通了 06/03 03:03
pureblue:我認為Xia不必再回,這非本行的容易聚焦錯誤。 06/03 09:32
pureblue:Xia你講的夠清楚了,真想知道,白色算盤本唸通就行。 06/03 09:33
freef1y3:現在的CPU都是用二進位為主的邏輯閘兜出來的吧 06/03 09:54
freef1y3:如果要用三進位可能整個邏輯系統都要重新發展.. 06/03 09:55
HuangJC:對,是成本的問題;但在特殊用途或非主流時還是看得到 06/03 10:13
HuangJC:目前就算內部不是這樣做,在抽出介面時還是會做成這樣子 06/03 10:14
HuangJC:到最後我們無法以 bus 寬度來當標準,可能是以 ALU 當標準 06/03 10:15
HuangJC:那 ALU 是以二進位運算嗎?(比如加法,是一個一個位元疊加?) 06/03 10:16
HuangJC:也不是,事實上多位元疊加用查表比較快;但你畢竟可以用位元 06/03 10:17
HuangJC:疊加來理解它.那我們又以ALU能控制的最小單元來定義嗎? 06/03 10:17
HuangJC:如果我們用 CPU 邊界接腳來定義,那怎麼又對混合型 IC 視而 06/03 10:19
HuangJC:不見?我用過18條位址線的 IC,一道指令就發出 SIN 波 06/03 10:20
HuangJC:這個是專用用途 DSP,數位及類比 IC 的混合 06/03 10:21
HuangJC:更妙的是現在燒錄 IC 大行其道,可以取得授權自己燒.. 06/03 10:22
sneak: 這個是專用用途 DSP http://yofuk.com 01/06 23:40