知識社群登入
位置: 艾鍗學院 Blog > 專業論壇 > 討論
電腦協定的決定方式
1樓
1.請問  我們常常說電腦內充滿各種協定  例如:ASC碼(當電腦讀到97時知道是a)  是由誰決定的  是cpu製作出來就決定了嗎?還是事後安裝的軟體決定的?
2.那當電腦讀到2位元組的資料時  電腦怎麼知道要當成2個1位元組(然後利用ASC碼轉成2個字元)、還是轉成一個中文字(因為1個中文字是兩個位元組)
2樓

1)
在按下鍵盤的一個KEY時, 你的電腦如何表示這些不同的KEY,
你的windows內的輸入裝置驅動程式可以將每個不同的KEY讀出來 (因為有不同的Scancode), 再將傳回以ASCII的編碼方法對應該KEY.當然也可以傳回不同於ASCII的編碼. 這和CPU沒有關係
ASCII 就是一種字元編碼方法, 它定義了字元的集合 character set ,

 
 
2)  程式都不會知道到底要讀一個byte或是要讀幾個byte.
    要明確的採用何種編碼方法去讀取, 當然程式可以用假定某種編碼法先去讀,若假定錯誤,讀出來就是亂碼.
   有很多不同的編碼, 如繁體中文用BIG-5, 簡體中文GB, 等等
   若使用Unicode 編碼法, 可以表示更多不同的語系,包含繁體中文與簡體中文都在內.

   多數的編碼法都會故意相容於ascii, 
  例如UTF-16, 即使是2個byte代表一個字, 一個byte的編碼仍是ascii,另一個byte不用,還是能表示出英文字 
   只是用這種固定用2個byte 去存成檔案,如果你的內文都是英數字, 檔案會比存成用ASCII 方式的, 大上兩倍.