如何存儲和表示數字—二進制(一)


 

今天,我們講計算機如何存儲和表示數字,所以會有一些數學,不過別擔心,你們的數學水平絕對夠用了。

之前我們講了,怎么用晶體管做邏輯門,邏輯門可以判斷布爾語句,布爾代數只有兩個值:True 和 False。但如果只有兩個值,我們怎么表達更多東西?這就需要數學了。

正數

上節提到,1 個二進制值可以代表 1 個數,我們可以把真和假 ,當做 1 和 0。如果想表示更多東西,加位數就行了。和我們熟悉的十進制一樣,十進制只有 10 個數(0到9),要表示大於 9 的數,加位數就行了。二進制也可以這樣玩。

拿 263 舉例,這個數字 "實際" 代表什么? 2 個 100 ,6 個 10 , 3 個 1  加在一起,就是 263。注意每列有不同的乘數,100, 10, 1,每個乘數都比右邊大十倍,因為每列有 10 個可能的數字(0到9),如果超過 9,要在下一列進 1。因此叫 "基於十的表示法"  或十進制。

二進制也一樣,只不過是基於 2 而已,因為二進制只有兩個可能的數, 1 和 0,意味着每個乘數必須是右側乘數的兩倍,就不是之前的 100, 10, 1,而是 4, 2, 1。拿二進制數 101 舉例,意味着有 1個 "4",0個 "2" , 1個 "1",加在一起,得到十進制的 5。

為了表示更大的數字,二進制需要更多位數。拿二進制數 10110111 舉例,我們可以用相同的方法轉成十進制,1 x 128 ,0 x 64 ,1 x 32 ,1 x 16 , 0 x 8 ,1 x 4 ,1 x 2 ,1 x 1,加起來等於 183。

運算

二進制數的計算也不難,以十進制數 183 加 19 舉例,首先 3 + 9,得到 12,然后位數記作 2,向前進 1,現在算 8+1+1=10,所以位數記作0,再向前進 1,最后 1+1=2,位數記作2,所以和是202。二進制也一樣,和之前一樣,從個位開始1+1=2,在二進制中也是如此,但二進制中沒有 2,所以位數記作 0 ,進 1,就像十進制的例子一樣,1+1,再加上進位的1等於 3,用二進制表示是 11。所以位數記作 1,再進 1,以此類推。最后得到這個數字,跟十進制 202 是一樣的。

字節

二進制中,一個 1 或 0  叫一"位",上個例子我們用了 8 位 , 8 位能表示的最小數是 0,  8位都是0,最大數是 255,8 位都是 1。能表示 256 個不同的值,2 的 8 次方。你可能聽過 8 位機,8 位圖像,8 位音樂,意思是計算機里大部分操作都是 8 位 8 位這樣處理的。但 256 個值不算多,意味着 8位游戲只能用 256 種顏色。

8 位是如此常見,以至於有專門的名字:字節。1 字節 = 8 位 ,如果有 10 個字節,意味着有 80 位。你聽過 千字節(kb)兆字節(mb)千兆字節(gb)。不同前綴代表不同數量級,就像 1 千克 = 1000 克,1 千字節 = 1000 字節或 8000 位。Mega 是百萬字節(MB), Giga 是十億字節(GB),如今你可能有 1 TB 的硬盤,8 萬億個1和0等等。我們有另一種計算方法,二進制里,1 千字節 = 2的10次方 = 1024 字節,1000 也是千字節(KB)的正確單位,1000 和 1024 都對。

你可能聽過 32 位 或 64 位計算機,你現在用的電腦肯定是其中一種,意思是一塊塊處理數據,每塊是 32 位或 64 位,這可是很多位。32 位能表示的最大數,是 43 億左右,也就是 32 個 1。所以 Instagram 照片很清晰, 它們有上百萬種顏色,因為如今都用 32 位顏色。

負數

當然,不是所有數字都是正數,比如我上大學時的銀行賬戶,我們需要有方法表示正數和負數。大部分計算機用第一位表示正負:1 是負,0 是正。用剩下 31 位來表示數字,能表示的數字范圍是 正 20 億到負 20 億。雖然是很大的數,但有時還不夠用,全球有 70 億人口,美國國債近 20 萬億美元,所以 64 位數很有用。64 位能表達最大數是 9.2x10。希望美國國債在一段時間內不會超過這個數。

位址

重要的是計算機必須給內存中每一個位置,做一個 "標記",這個標記叫 "位址", 目的是為了方便存取數據。如今硬盤已經增長到 GB 和 TB,上萬億個字節!內存地址也應該有 64 位。

浮點數

除了負數和正數,計算機也要處理非整數,除了負數和正數,計算機也要處理非整數,比如 12.7 和 3.14,或"星歷 43989.1" 這叫 浮點數,因為小數點可以在數字間浮動,有好幾種方法 表示浮點數,最常見的是 IEEE 754 標准。

你以為只有歷史學家取名很爛嗎?它用類似科學計數法的方法,來存十進制值,例如,625.9 可以寫成 0.6259×10 ^ 3。這里有兩個重要數字:.6259 叫 "有效位數" , 3 是指數。在 32 位浮點數中,第 1 位表示數字的正負,接下來 8 位存指數,剩下 23 位存有效位數。

 

好了,聊夠數字了,但你的名字是字母組成的。所以我們也要表示文字,明天我們繼續。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM