4、二進位制的使用
1、背景:
用電晶體做邏輯閘,邏輯閘可以判斷布林語句,但是隻有兩個值:True 和 False。
2、如何用兩個值表達更多的內容?————》方法:加位數
十進位制只有 10 個數(0到9),要表示大於 9 的數,加位數就行了。
例如: 263,這個數字 "實際" 代表2 個 100 、6 個 10 、 3 個 1,加在一起,就是 263。每列有不同的乘數,分別為100、10、 1,每個乘數都比右邊大十倍。
因為每列有 10 個可能的數字(0到9),如果超過 9,要在下一列進 1.因此叫 "基於十的表示法"或十進位制。
二進位制也一樣,只不過是基於 2 而已。二進位制只有兩個可能的數, 1 和 0,每個乘數必須是右側乘數的兩倍。
例如:二進位制數 101 ,代表1個 "4"、0個 "2"、 1個 "1",加在一起,得到十進位制的 5。為了表示更大的數字,二進位制可以有更多位數。
3、二進位制
二進位制中,一個 1 或 0叫一"位"。
(1)8位——1位元組
如果有8 位能表示 256 個不同的值,2 的 8 次方;表示的最小數是 0,8位都是0;最大數是 255,8 位都是 1。
常見的有8 位機,8 點陣圖像,8 位音樂,意思是計算機裡大部分操作都是 8 位 8 位這樣處理的。
8位又叫位元組。1 位元組 = 8 位 ( 1 bytes = 8 bits),如果有 10 個位元組,意味著有 80 位。
小知識補充: 一種演算法:1 千位元組 = 1000 位元組。 另一種演算法: 1 千位元組 = 2的10次方 = 1024 位元組. 1000 和 1024 都對
(2) 32 位 或 64 位
32 位 或 64 位計算機,意思是一塊塊處理資料,每塊是 32 位或 64 位。
「32 位能表示的最大數(32 個 1),是 43 億左右 」
「64 位能表達最大數是 9.2x10 」
(3)浮點數、字母的表示
負數:
大部分計算機用第一位表示正負:1 是負,0 是正。用剩下 31 位來表示數字。能表示的數字範圍是 正 20 億到負 20 億。
浮點數:
除了負數和正數,計算機也要處理非整數(浮點數),比如 12.7 和 3.14。浮點數最常見使用的標準是 IEEE 754 標準,用類似科學計數法的方法,來存十進位制值。例如,625.9 可以寫成 0.6259×10 ^ 3,.6259 叫 "有效位數" , 3 是指數。
在 32 位浮點數中,第 1 位表示數字的正負,接下來 8 位存指數,剩下 23 位存有效位數。
字母、文字:
計算機可以用數字表示字母,給字母編號:A是1,B是2,C是3,以此類推。字母表示的發展程序如下:
-
5位序列
:
英國作家 弗朗西斯·培根,曾用 5位序列 來編碼英文的 26 個字母;五位(bit)可以存 32 個可能值(2^5)。
不足:這對26個字母夠了,但不能表示 標點符號,數字和大小寫字母。 -
ASCII
:美國資訊交換標準程式碼,發明於 1963 年,ASCII 是 7 位程式碼,足夠存 128 個不同值。可以表示大寫字母,小寫字母,數字 0 到 9, @ 這樣的符號, 以及標點符號。
不足:一個位元組有8位,128 到 255的字元漸漸變得常用,128以前是空的,是給各個國家自己 "保留使用的",在美國,這些額外的數字主要用於編碼附加符號,在俄羅斯,他們用這些額外的字元表示西里爾字元,而希臘電腦用希臘字母,等等。問題是:如果在土耳其 電腦上開啟 拉脫維亞語 寫的電子郵件,會顯示亂碼 。
-
Unicode
:
統一所有編碼的標準,設計於 1992 年,解決了不同國家不同標準的問題。最常見的 Unicode 是 16 位的,有超過一百萬個位置 ,對所有語言的每個字元都夠了。