編碼方式:計算機中所有的資訊都採用0
,1
這樣的二進位制位來表示,那麼肯定存在特定的對映規則(例如:0010 0011
->#
) 我們將這種一一對應的規則稱為編碼(方式)。 常見的編碼方式有 ascii、utf-8、gbk等
編碼:我們希望將hi!
這句話儲存在磁碟上,由於計算機只能儲存0
和1
因此我們可以將hi!
按照某種編碼方式(ascii)轉化為01001000 01101001 00100001
來儲存。從字串到 二進位制的過程叫編碼。
解碼:當我們需要將磁碟上的一句話顯示在螢幕上時,先從磁碟讀取二進位制資料 ——01001000 01101001 00100001
, 然後按照我們之前使用的 ascii 編碼方式(對應關係集合)將二進位制轉為hi!
。從二進位製到字串的過程叫解碼。
總結:編碼和解碼是自然語言符號
和二進位制符號
相互轉化的過程,要實現一一對應的轉換,就需要依賴某種對應規則,而這種對應規則就是我們所說的編碼方式。
機器儲存資料按照位元組來儲存,乙個位元組 8位,每一位有0
和1
兩種狀態。因此乙個位元組理論上可以表示 2^8 =256
個不同的狀態,每個狀態對應乙個字元就是256
個字元。
標準的 ascii 編碼標準 使用最低7位
(後7位)表示字元(最高位為0
)共128
個字元。
英語中128個符號編碼就夠了,但是隨著計算機的發展,網路鏈結了不同語言的地區和國家,即使將ascii碼中保留的最高位用掉也不夠表示全世界各種語言的自然符號。
因此各個國家和地區都推出了自己地區專用的編碼方式,例如中國的gbk
、gb18030
、gb2312
等,但是使用地區編碼的字元無法在其他地區使用。由於編碼的不一致,資訊交換的成本過高,例如日本的遊戲中國使用者無法使用,中國傳送的電子郵件法國的朋友無法閱讀... ...
高昂的資訊交換成本使得這樣一種編碼方式的誕生成為必然。即這種編碼將世界上所有的符號都納入其中,每乙個符號都給予乙個獨一無二的編碼,它將徹底的解決亂碼問題。它就是unicode
,就像它的名字都表示的,這是一種所有符號的通用編碼。
國標編碼,是一種相容ascii編碼
的漢字雙位元組編碼字符集(由於ascii碼
高位為0
因此,國標碼相容ascii碼
部分為單位元組)常用的國標碼中gb18030
字符集更加豐富。
注意:unicode
只是乙個字符集,它只規定了自然符號和二進位製碼的對映關係,但沒有規定這個二進位製碼的儲存策略。
由於unicode字符集
過於龐大,在使用中會占用2~4倍的儲存空間,並且很多字元儲存中會出現大量冗餘位元組(設每個字元佔4位元組,英文僅需要乙個位元組表示,那所有的 ascii 字元前三個位元組全為0
,這是無法接受的)
純文字檔案採用ascii碼
表示為1m
。若內容不變改為unicode編碼
表示則會變成4m
,直接擴大了4倍。無論從何種角度來看這都是無法接受的。
注意: 它特點不是
unicode字符集的子集
,而是unicode
的實現方式之一。
編碼規則
1 與gbk的策略一致,當高位為0時,認為是ascii字元,反之為其他字元。
2 以首個位元組的高位的第乙個0
前的1個數標記該字元所佔位元組數,其後為unicode
碼值。
計算機字元編碼
因為計算機只能處理數字,如果要處理文字,就必須先把文字轉換為數字才能處理。最早的計算機在設計時採用8個位元 bit 作為乙個位元組 byte 所以,乙個位元組能表示的最大的整數就是255 二進位制11111111 十進位制255 如果要表示更大的整數,就必須用更多的位元組。比如兩個位元組可以表示的最...
計算機字元與編碼
ascii碼 1.使用7個bits就可以完全表示ascii american standard code for information interchange 碼 包含95個可列印的字元,33個不可列印的字元,比如一些控制字元 33 95 128 2的7次方,最高位表示定位符。ascii包含了所有...
計算機編碼 編碼
原碼 a.規則 最高位為符號位,0為正數,1為負數,剩餘位表示資料 b.例 95 原 0101 1111 原 77 原 11001101 原 c.特點 區分正負零 缺陷 0 原 0000 0000 0 原 1000 0000 原碼可能出錯 1 原 1 原 1000 0010 原 2 d d.範圍 8...