關於計算機編碼的筆記

2022-06-25 12:24:07 字數 1293 閱讀 2783

寫的實在太好了,以上總結就是 ascii => gb2312 => gbk =>  unicode。

unicode跟utf-8、utf -16、utf-32有什麼關係呢?

unicode 是「字符集」

utf-8

是「編碼規則」

字符集:為每乙個「字元」分配乙個唯一的 id(學名為碼位 / 碼點 /code point)

編碼規則:將「碼位」轉換為位元組序列的規則(編碼/解碼 可以理解為 加密/解密 的過程)

unicode,gbk和大五碼就是編碼的值,而utf-8,uft-16之類就是這個值的表現形式。

utf的推出也是為了解決unicode在不同機器之中的傳輸差異問題、以及記憶體浪費的問題,比如2個8bit傳輸乙個英文本母,那麼高位位元組就全是0000而浪費了一倍的記憶體。

所以utf-8代表的unicode碼,對於ascii就能表示的字元,記憶體是浪費的,因為有個位元組是空的。utf比gbk是更加浪費記憶體的。

utf8\

16\32是unicode的三套編碼方式,utf-8之中字元是以8位序列來編碼的,16、32同理。考慮到最初的目的,通常說的unicode編碼指的是utf-16

(unicode的最初目標是用1個16位的編碼來為超過65000個字元提供對映,但仍然不能覆蓋歷史上所有文字以及不能解決傳輸上的問題)。

為什麼所有**更鍾情於utf-8呢?

utf-8

的幾個優勢

1. 亂碼不會擴散, gb2312 在丟失一位元組等情況下會造成後續所有文字變成亂碼2. 不會產生錯誤的搜尋結果, gb2312 在搜尋的時候相鄰兩個中文會拼出乙個新的字元,導致出現錯誤的搜尋結果3. 更大的字符集4. 很多語言直接支援 utf-8,部分語言儲存字串到記憶體時直接使用 utf-8編碼。5. 與 gb2312/gb18030 相比, utf-8是乙個通用解決方案6. unicode 一直有人維護,而 gb18030 下一次更新不知道會是什麼時候了。

另對於中文, utf-8

和 gb2312 在 gzip 壓縮後都差不多,所以用來做網頁對頻寬影響很小

建立資料庫的時候眾多字元編碼、排序規則又該如何選擇呢、

sublime的常用設定

蔣本珊 -《計算機組成原理》

關於計算機編碼的故事

很久很久以前,有一群人,他們決定用8個可以開合的電晶體來組合成不同的狀態,以表示世界上的萬物。他們看到8個開關狀態是好的,於是他們把這稱為 位元組 再後來,他們又做了一些可以處理這些位元組的機器,機器開動了,可以用位元組來組合出很多狀態,狀態開始變來變去。他們看到這樣是好的,於是它們就這機器稱為 計...

計算機編碼 編碼

原碼 a.規則 最高位為符號位,0為正數,1為負數,剩餘位表示資料 b.例 95 原 0101 1111 原 77 原 11001101 原 c.特點 區分正負零 缺陷 0 原 0000 0000 0 原 1000 0000 原碼可能出錯 1 原 1 原 1000 0010 原 2 d d.範圍 8...

計算機編碼

來自 阮一峰 一下對自己有用的精簡部分 1.ascii碼 在計算機內部,所有的資訊最終都表示為乙個二進位制的字串。每乙個二進位制位有0和1兩種狀態,因此八個二進位制位就可以組合出256種狀態,這被稱為乙個位元組 byte 也就是說,乙個位元組一共可以用來表示256種不同的狀態,每乙個狀態對應乙個符號...