您當前的位置:首頁 > 攝影

1個漢字在電腦如何儲存?

作者:由  發表于 攝影時間:2022-12-08

1個漢字在電腦如何儲存?匿名使用者2022-12-08 19:07:45

最簡單的分類是兩類,用數字表示就是 0 1,這個最簡單的區分就叫做位

也就是說,位值為 0 或 1,一位能表達兩種可能

那麼兩位能表達多少種可能? 00 01 10 11 四種

推下去,三位能表達 000 - 111 八種

這就是二進位制了,N位能表達 2的N次冪 種可能

做計算機的那幫人說,你這個“位”作為最小單位能表達的資訊種類太少了(只有兩種),做東西不方便。現在硬體也便宜了,我們換個大點的最小單位吧,這樣就逐漸有了位元組的概念,位元組是什麼呢,就是八位,每個位元組能表達 2的8次冪(256)種可能。

接下來要對應字元了嗎?不是的,是數字。

一個位元組應該對應哪 256 個數字呢?1-256,0-255 還是 -128-127?兩個位元組呢,對應哪個區間的數字?小數怎麼表示?這裡就涉及了型別的概念了,byte char short int long float double boolean 這些基礎的型別你可以去查一下他們的底層表示。就像剛剛過程描述的那樣,這種型別和數值區間的對應關係都是“約定俗成”,所以不同語言,甚至是相同語言的不同實現是可能不一樣的。

回到字元的問題上,首先,發明計算機的人要先把 26 個英文字母對應到 256 個數裡,這樣就方便了。當然字母有小寫大寫,除了字母也要考慮逗號引號換行符控制符,形成了一個字元和二進位制數字的對應關係,也就是 ASCII 碼。

計算機發展的越來越好,一個位元組肯定裝不下世界上所有的字元,怎麼辦?對,就是擴充套件為多位元組。這種字元和位元組的對應關係,稱為編碼。常用的編碼有 gbk 和 utf8。一個“我”字在 gbk 下對應 2 個位元組,在 utf-8 下對應 3 個位元組

In

1

]:

u

“我”

encode

“gbk”

Out

1

]:

b

\xce\xd2

In

2

]:

u

“我”

encode

“utf8”

Out

2

]:

b

\xe6\x88\x91

這些吧。

標簽: 位元組  對應  256  字元  表達