tft每日頭條

 > 圖文

 > 位字的意思

位字的意思

圖文 更新时间:2024-07-28 06:27:03

可能你也不止一次的聽到諸如32位、64位的說法。

這裡的“位”到底是什麼意思呢?相信通過這篇文章,你可以找到答案。

什麼是位?

位,是計算機的最小存儲單元,一位,可以存放一個二進制數字

其實,位的概念非常簡單,我們知道,在計算機中,無論是數字還是字符,無論是圖片還是音樂,存儲時,都是使用二進制格式的數字來存儲,這個二進制數字的其中一位就是“位”的概念。

比如,一個字符'a',在unicode編碼下,它的二進制格式是:

0000 0000 0110 0001

那麼我們可以認為,一個'a'字符,在計算機中占16位。

以上,就是位的概念。

32位和64位

現在,你知道了位的概念,但跟我們平時所說的32位CPU、32位操作系統、64位CPU、64位操作系統,這些是什麼呢?

這裡所說的“位”,是指尋址能力。

這是什麼意思呢?要理解這個概念,需要知道以下的知識。

内存的劃分

為了方便對内存的管理,内存被劃分為許多區塊。

這就好比有一個年級,學生比較多,比如有200個學生,為了方便管理,學校可以将學生分為20個小組,每個小組10個學生。

内存也是這樣,它被劃分為很多的區塊,每個區塊大小固定為1字節。

位字的意思(位的概念)1

正是因為如此,在内存管理上的最小單位是字節,而不是位。你可以讓CPU取出某個内存位置的字節,而不能讓它取出某個位置的一位。

一個int類型占32位,也就是4個字節,那麼一個int類型的數據會在内存中跨越4個區塊。

根據這樣的知識,你可以計算一下,一個2G的内存,可以被劃分為多少個大小為1字節的區塊。

下面列出計算過程: 210241024*1024 = 2147483648

CPU的尋址方式

什麼是尋址呢?

CPU對内存進行劃分之後,問題随之而來,當我需要某個區塊的數據時,我如何告訴CPU呢?如何讓CPU準确的取到我需要的數據呢?

這就好比給學生分了組之後,我如何找到需要的組。

其實,最簡單、最實用的方式就是編号,可以給學生的分組編号(1組,2組,3組......),也可以給内存的每一個區塊編号(0, 1, 10, 11, 100......)。隻不過要注意的是,現實世界中的編号是十進制的數字,但計算機世界中的編号是二進制。

下面這張圖描述了計算機的編号方式:

位字的意思(位的概念)2

我們通常把這樣的内存編号,稱之為内存地址,或簡稱地址。

有了地址(編号)後,當我需要取到某個内存的數據時,就可以把該内存對應的地址告訴CPU,CPU就可以根據該地址準确的找到對應的内存,取出數據了。而CPU通過地址找到對應内存的過程,就是尋址。

32位CPU和64位CPU

現在再來理解32位和64位CPU就簡單多了:一個N位的CPU,是指該CPU能夠支持的地址長度為N。

其實,這類似于現實場景中的編号。

比如,一個學校裡面的學号是一個5位數,5位數可以編排多少個學生呢?答案是0-99999,十萬個(105個),如果學生數量超過了十萬,則超過的學生是沒有辦法編号的。

道理是一樣的,如果一個CPU是5位的地址長度,那麼它的編号範圍則是00000-11111(注意,這裡是二進制),一共多少個呢?25個!6位的CPU呢?26個!32位的CPU呢?232個!64位的CPU呢?264個!

為什麼N位的CPU,能夠得到的編号數量是2N個呢?我不談數學證明,可以通過找規律得到答案:

  • 1位的CPU可以取到的編号有2個: 0和1 共21個編号

  • 2位的CPU可以取到的編号有4個: 00、01、10、11 共22個編号

  • 3位的CPU可以取到的編号有8個: 000、001、010、011、100、101、110、111 共23個編号

  • N位的CPU可以取到的編号有2N個

由于一個編号就對應内存中的一字節數據,因此,編号範圍越大,能夠取到的内存越大。

如果一個CPU隻有1位,那麼它的編号隻有21個,隻能尋址21B的内存,哪怕你給它16G的内存,很遺憾,超過21B的部分,它無法找到,因為無法對超過的部分進行編号。

所以,一個CPU位數越高,則它的尋址能力越強,一個N位的CPU,可以有編号2N個,則可以識别2NB的内存。

現在明白了吧,32位的CPU,可以尋址的内存大小是232B,算出來就是4G。也就是說,哪怕你電腦的内存是16G,如果CPU是32位的,最多隻能認識4G。

而64位的CPU呢,可不是說尋址能力是32位的兩倍,那可是264B,算出來是232G!

在現實生活中,你也會發現,當你使用一台老式電腦時,它們的CPU往往是32位的,哪怕你内存再大,它也隻能識别很小的一部分。

你可能還是有疑問:那為什麼我32位的CPU,看到的能夠識别的内存不足4G呢?那是某些内存中保存有重要數據,不允許你訪問,操作系統給你隐藏起來了。

操作系統的位數

CPU有編号範圍,同樣的,操作系統也有。

當操作系統系統需要操作某一個内存的時候,會将内存地址傳遞給CPU。

這就會出現3種情況:

操作系統和CPU的尋址位數相同

這種情況不會出現任何問題,32位的CPU 32位的操作系統,可以順利的傳遞内存地址,64位的CPU 64位的操作系統也是一樣。

位字的意思(位的概念)3

位字的意思(位的概念)4

操作系統的尋址位數高于CPU

這種情況是不允許的!因為低位數的CPU無法容納操作系統的傳遞的地址。這也是為什麼當你的CPU是32位時,不允許安裝64位的操作系統。

位字的意思(位的概念)5

操作系統的尋址位數低于CPU

計算機允許出現這種情況,因為高位數的CPU可以容納操作系統傳遞的地址,CPU會在不足的部分前面補充0。

但這樣一來,實際上是浪費了CPU的尋址能力,本來是64位的CPU,但如果安裝32位的操作系統,由于受操作系統的限制,仍然隻能訪問很少的内存。

位字的意思(位的概念)6

希望這篇文章能夠幫助你認識位的概念。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved