一直想寫一本有關中文電腦發展的書,但遲遲未能成事,或者先由這裡開始一鱗半爪吧?

星期三, 11月 17, 2004

由ANSII到雙字節電腦

由於電腦只懂0和1,因此字母也要靠0和1來表示。英文字母有26個,加上大小草便成52個,再計入$、!、=等等符號,最少要7個0和1組成的字串(即7 bit)來表示(由0到127共128個組合),電腦內的ANSII標準便是如此。

ANSII全稱American Standard Code for Information Interchange,開宗明義是一美國標準,最初並非為電腦開發的,而是為了電報,改良摩斯密碼(Morse code)。是了,假如說二進制令你很頭痛,想一想摩斯密碼就成了。摩斯密碼的長(-)、短(.)訊號功能就類似0和1。中國的電報碼由清朝開始,按筆劃順序,用4個十位數(即0000~9999)含9999個中文字,後來還成為中文電腦的第一套內碼,在台灣稱為CNS-11643標準。

由於每個0和1稱為1 bit(位元)太麻煩了,於是又將8個0和1的二進制字組稱為1 byte(位元組/字節)。雖然英文字得7 bit字就夠放了,但IBM推出個人電腦時還是把字碼用8 bit即1 byte來處理。多出的1個bit,留在將字符變換為其他歐洲拉丁文字(例如法文、德文等,各國字母各有一套內碼)。

技術上,舊式的電腦用磁芯做記憶體,十分昂貴,自然逐bit逐bit計。到IC(集成電器)時代,微處理器已改為4 bit、8 bit、16 bit倍增上去,byte便應運而生了。有趣的是,byte的原稱是bite,但怕人們容易與bit混淆,於是IBM的Werner Buchholz便將其變字,轉成同音的byte,時為1956年。

IBM稱為International Business Machine是不錯的,早在二次大戰前已看到世界市場,甚至把產品賣到去中國。因此IBM一早看到世界市場問題,將電腦字符內碼由僅僅夠美國人用的7 bit提升到歐美人都能用的8 bit。早期Internet上收發電郵,間中會出現亂碼,就是因為7 bit與8 bit內碼之間的差異造成的。中國知名的軟件公司北大方大,當年取名「方正」,便考慮到「方正」這兩字繁、簡體一樣。許多時,格局大小之差往往在於起步時的一個小小決定。

問題是,1 byte (即8 bit)字僅有256個組合(包括0000),根本不夠中文用。中文至少要用2 byte(雙字節)才成,256 * 256 = 65536個組合,常用中文已經綽綽有餘。可惜早年技術所限,電腦記憶體矜貴,硬碟也小,加上70、80年代個人電腦蓬勃發展之時,中國剛從文革浩劫中走出來,百癈待興,電腦市場不成氣候,港英殖民政府也不重視中文,單靠台灣市場有限,IBM和Microsoft等才懶得理你。

然而,正因如此,也為海峽兩岸三地的IT人提供一個大展身手的機會。

0 Comments:

發佈留言

<< Home