資料在計算機中的儲存

2021-08-14 02:18:04 字數 1271 閱讀 1353

首先,我們為什麼要知道這個呢?我們只需要知道這個東西怎麼用不就好了嗎?我想,你可能忽視了你還是乙個程式設計師。

好了言歸正傳我們來講講計算機中資料的儲存方式。我們都知道在計算機中所有的資料是以二進位制的形式儲存的,那麼你們有沒有想過01這些資料是怎麼存在計算機當中的呢?

不知道你們有沒有聽過乙個東西,叫做——電容器。顧名思義,這是一種能容納電荷的容器。與普通的電池不同的是,它的充電速度很快,並且因為不會轉化為化學能所以電量流失的也很快。因此需要經常重新整理。在我們的計算機中,cpu有乙個引數是hz,便是指每秒鐘能充多少次電。資料在記憶體中以二進位制地方式儲存,事實上是通過對小電容器的充放電來完成的。

當然是把數字轉化成二進位制啦

既然能夠儲存0和1,那儲存字元也就不是什麼難事了吧。我們只需要把字元和二進位制一一對應起來,然後責令計算機來記住它,就萬事大吉了。ascii美國資訊交換標準碼就是這樣的乙個東西。

當然,先開始的時候計算機並沒有在中國興起,所以中文並不能被計算機所識別,沒有人來做這樣的工作。但是沒有什麼阻擋的了中國人的[得意臉]……是的,gb2312橫空出世。gb2312是乙個關鍵的正式註冊的網際網路名稱字符集的的中國人民共和國,功能與ascii相似。念做國標2312,即國際標準。當然,後來又有了gbk(國際標準擴充套件),我們暫且不提。

照葫蘆畫瓢,將所有的字元進行編號,所以有了unicode字符集。但是這裡有乙個問題,雖然它可以儲存世界上所有的字元,但是如果你的編碼是000000000000001,它是不會自動給你簡化成1的。由此直接導致了所有的文字儲存代價都會翻倍,而這樣的代價,是很多人都不願意看見的。所以…..

這裡稍微解釋一下最後一行,第一塊的兩個11是指後邊有兩串跟著,緊接著的10是指兩串開頭兩個標誌位是10。上邊的unicode編碼中擷取後兩個位元組放到下邊utf-8中除標誌位之外的地方,也就是說,除了第一塊開頭的1110,第二塊和第三塊開頭的10,我們有4+6+6=16位來依次儲存上邊的8+8=16位字串。

如你所見,這就是utf-8,一種編碼方式。它採用了變長儲存的形式來表示unicode字符集。

負數在計算機中的儲存

問乙個基本的問題。負數在計算機中如何表示?舉例來說,8在計算機中表示為二進位制的1000,那麼 8怎麼表示呢?很容易想到,可以將乙個二進位制位 bit 專門規定為符號位,它等於0時就表示正數,等於1時就表示負數。比如,在8位機中,規定每個位元組的最高位為符號位。那麼,8就是00001000,而 8則...

負數在計算機中怎樣儲存

一 什麼是原碼 反碼 補碼?分為 正數 和負數 包括正浮點數,和負浮點數 規定最高位位符號位正數為0,負數為1 原因下文解釋 原碼 10進製轉換成2進製是原碼,只不過正數的原碼是本身符號位為0,負數的原碼符號位為1 以下篇幅均以單位元組為例 10進製1的原碼是0000 0001,10進製 1的原碼是...

負數在計算機中怎樣儲存

一 什麼是原碼 反碼 補碼?分為 正數 和負數 包括正浮點數,和負浮點數 規定最高位位符號位正數為0,負數為1 原因下文解釋 原碼 10進製轉換成2進製是原碼,只不過正數的原碼是本身符號位為0,負數的原碼符號位為1 以下篇幅均以單位元組為例 10進製1的原碼是0000 0001,10進製 1的原碼是...