第4集 二進制

本集主題:計算機如何存儲和表示數字

1. 布爾代數只有兩個值,那如何表達更多的東西?

這就需要數學了。 如果想要表示更多的東西,加位數就可以了。

這和十進制一樣,十進制有10個數(0到9),要表示大於9的數,加位數就可以了。

二進制也可以這樣。
例如:二進制的 101 是十進制的 xxx
爲了表示更大的數字,二進制需要加位數即可。

2. 二進制中的一個 1 或者 0 叫一「位」

8位能表示的最小數是0,即00000000(8個0),最大數是255,即11111111(8個1),能表示256個不同的值,即2的8次方。

8位的例子有很多。
例如:8位機、8位圖像、8位音樂、8位遊戲(只能使用256種顏色)
意思是在計算機裏面,大部分操作都是8位8位這樣處理的。

8位如此常見,以至於它有專門的名字:字節。1字節 = 8位。

二進制裏面,1 千字節 = 2 的 10 次方 = 1024 字節,1000 也是千字節的正確單位,1000 和 1024 都對。

3. 你可能聽說過 32 位電腦或者 64 位電腦

意思是處理一塊塊的數據,每塊是 32 位或者 64 位
32 位能表達的最大數是 43 億左右,也就是 32 個 1
舉例:instagram 照片很清晰,他們有上百萬中顏色,因爲如今都使用 32 位顏色。

4. 不是所有數字都是正數,我們需要有方法表示正數和負數

大部分計算機用第一位表示正負。1 是負,0 是正,用剩下 31 位來表示數字,能表示的數字範圍是正 20 億到負 20 億,
雖然數字很大,但是有的時候還是不夠用。
例如:
全球有 70 億人口,美國國債近 20 萬億美元
所以,64 位很有用。

5. 計算機必須給內存中的每一個位置,做一個「標記」

這個標記叫“位置”,目的是爲了方便存儲數據。

6. 浮點數

  1. 除了正數和負數,計算機也要處理非整數,即浮點數,因爲小數點可以在數字間浮動;

  2. 表示浮點數的方法,最常見的是 IEEE 754 標準,它用類似科學計數法的方法,來存儲十進制值,
    例如:625.9 可以寫成 0.6259 * 10 ^ 3;

    注意:這裏 . 6259 叫「有效數位」,3 是指數。

  3. 在 32 位浮點數中,第 1 位表示數字的正負,接下來 8 位存指數,剩下 23 位存有效位數。

7. 計算機如何表示文字?

  1. 使用數字表示字母,即給字母編號:A是1,B是2,C是3,以此類推。

  2. ASCII, 美國信息交換標準代碼,發明於 1963年,是7位代碼,足夠存儲 128 個不同值,可以表示字母之外的大寫字母、
    小寫字母,數字0到9,@這樣的符號,以及標點符號。
    例如;小寫字母a用數字97表示,大寫字母A是65,:是58,)是41
    甚至還有「換行符」。

  3. 互用性
    ASCII 讓不同公司製作的計算機,可以交換數據,這種通用交換信息能力叫做「互用性」。
    但是有一個限制:它是爲英語設計的,即使有一些保留的字符給其他國家「保留使用」,這些保留下來給每個國家自己安排使用的空位,對大部分國家都夠用,也有問題。
    例如:在土耳其電腦上打開拉脫維亞語寫電子郵件,看到的是亂碼;隨着計算機在亞洲的興起,這種做法徹底失效了。
    中文和日文這樣的語言有數千個字符,沒有辦法使用8位來表示所有字符。

  4. 爲了解決這個問題,每個國家都發明瞭「多字節編碼方案」,但是不相互兼容,
    所以誕生了「Unicode」,統一所有編碼的標準。它設計於 1992 年,用一個統一編碼方案解決了不同國家不同標準的問題。
    最常見的 unicode 是 16 位的,有超過一百萬個位置,對所有語言的每個字符都夠用了。

  5. 不管是 ASCII 還是 Unicode,這些標準歸根到底是一長串位。
    舉例:短信、youtube 視頻,互聯網上的每個網頁,甚至操作系統,只不過是一長串0和1。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章