Lesson 001 —— 數據
數據(data)是事實或觀察的結果,是對客觀事物的邏輯歸納,是用于表示客觀事物的未經加工的原始素材。數據是信息的表現形式和載體,可以使符號、文字、數字、語音、圖像、視頻等。
進制
進制也就是進位制,是人們規定的一種進位方式。
十進制
數碼:指集合論中刻畫任意集合所含元素數量多少的一個概念。
十進制的基本符號是:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
,我們把這些稱之為十進制的數碼,也就是基本符號,所有的十進制數都是由這十個數碼組成。每位在加時都是“逢十進一”。位權:數制中每一固定位置對應的單位值稱為位權。
我們可以從 0 開始,對數字的各個數位進行編號,即個位起,從右向左依次編號為
0, 1, 2, ...
;對稱的,從小數點后的數位則為-1, -2, ...
;而 n 位所代表的權的大小為10n-1
二進制
在計算機系統中采用的進位計數制。在二進制中,數用0和1兩個符號來描述。計數規則是逢二進一,借一當二。
數制符號
二進制 B (binary)
八進制 O (octal)
十進制 D (decimal)
十六進制 H (hexadecimal)
進制轉換
其它進制轉十進制
將其它進制按權位展開,然后各項相加,就得到相應的十進制數。
例1: N=(10110.101)B=(?)D 按權展開N=1*2^4+0*2^3+1*2^2+1*2^1+0*2^0+1*2^-1+0*2^-2+1*2^-3 =16+4+2+0.5+0.125 =(22.625)D
將十進制轉換為其它進制
分兩部分進行的即整數部分和小數部分。
整數部分:(基數除法)
把我們要轉換的數除以新的進制的基數,把余數作為新進制的最低位;
把上一次得的商在除以新的進制基數,把余數作為新進制的次低位;
繼續上一步,直到最后的商為零,這時的余數就是新進制的最高位.
小數部分: (基數乘法)
把要轉換數的小數部分乘以新進制的基數,把得到的整數部分作為新進制小數部分的最高位
把上一步得的小數部分再乘以新進制的基數,把整數部分作為新進制小數部分的次高位;
繼續上一步,直到小數部分變成零為止。或者達到預定的要求也可以。
二進制與八進制、十六進制的相互轉換
二進制轉換為八進制、十六進制:它們之間滿足23和24的關系,因此把要轉換的二進制從低位到高位每3位或4位一組,高位不足時在有效位前面添“0”,然后把每組二進制數轉換成八進制或十六進制即可。
八進制、十六進制轉換為二進制時,把上面的過程逆過來即可。
二進制運算
算數運算
二進制的算數運算包括:加、減、乘、除四則運算。
二進制的加法
根據“逢二進一”規則,二進制數加法的法則為:
0+0=0 0+1=1+0=1 1+1=0 (進位為1) 1+1+1=1 (進位為1)
二進制的減法
根據“借一有二”的規則,二進制數減法的法則為:
0-0=0 1-1=0 1-0=1 0-1=1 (借位為1)
二進制的乘法
二進制數乘法過程可仿照十進制數乘法進行。但由于二進制數只有0或1兩種可能的乘數位,導致二進制乘法更為簡單。二進制數乘法的法則為:
0×0=0 0×1=1×0=0 1×1=1
二進制的除法
二進制數除法與十進制數除法很類似。可先從被除數的最高位開始,將被除數(或中間余數)與除數相比較,若被除數(或中間余數)大于除數,則用被除數(或中間余數)減去除數,商為1,并得相減之后的中間余數,否則商為0。再將被除數的下一位移下補充到中間余數的末位,重復以上過程,就可得到所要求的各位商數和最終的余數。
說明:乘除法分原碼乘法和補碼乘法。
邏輯運算
二進制數的邏輯運算包括邏輯加法(“或”運算)、邏輯乘法(“與”運算)、邏輯否定(“非”運算)和邏輯“異或”運算。
邏輯“或”運算
又稱為邏輯加,可用符號“+”或“∨”來表示。邏輯“或”運算的規則如下:
0+0=0 或 0∨0=0 0+1=1 或 0∨1=1 1+0=1 或 1∨0=1 1+1=1 或 1∨1=1
可見,兩個相“或”的邏輯變量中,只要有一個為1,“或”運算的結果就為1。僅當兩個變量都為0時,或運算的結果才為0。計算時,要特別注意和算術運算的加法加以區別。
邏輯“與”運算
又稱為邏輯乘,常用符號“×”或“· ”或“∧”表示。“與”運算遵循如下運算規則:
0×1=0 或 0·1=0 或 0∧1=0 1×0=0 或 1·0=0 或 1∧0=0 1×1=1 或 1·1=1 或 1∧1=1
見,兩個相“與”的邏輯變量中,只要有一個為0,“與”運算的結果就為0。僅當兩個變量都為1時,“與”運算的結果才為1。
邏輯“非”運算
又稱為邏輯否定,實際上就是將原邏輯變量的狀態求反,在變量的上方加一橫線表示“非”。邏輯變量為0時,“非”運算的結果為1。邏輯變量為1時,“非”運算的結果為0。
邏輯“異或”運算
“異或”運算,常用符號“”或“”來表示,其運算規則為:
00=0 或 00=0 01=1 或 01=1 10=1 或 10=1 11=0 或 11=0
可見:兩個相“異或”的邏輯運算變量取值相同時,“異或”的結果為0。取值相異時,“異或”的結果為1。
機器數與真值
- 機器數:一個數在計算機中的二進制表示形式,叫做這個數的機器數。機器數是帶符號的,在計算機中用一個數的最高位存放符號,正數為 0, 負數為 1 。
- 真值:將帶符號的機器數對應的真正數值稱為機器數的真值。
原碼、反碼、補碼
為了將符號位參與運算,并且只保留加法,從而簡化計算機運算,發明了原碼、反碼和補碼。它們都是用有符號的二進制數表示的方法,均由符號位和數值位構成。
原碼:原碼是符號位加上真值的絕對值,即用第一位表示符號,其余為表示值。
[+1]原 = 0000 0001 [-1]原 = 1000 0001
反碼:正數的反碼是其本身;負數的反碼是其在原碼的基礎上,符號位不變,其余各個位取反。
[+1] = [0000 0001]原 = [0000 0001]反 [-1] = [1000 0001]原 = [1111 1110]反
補碼:正數的補碼是在其本身;負數的補碼是在其原碼的基礎上,符號位不變,其余各位取反,最后 +1(即在反碼的基礎上 +1)。
[+1] = [0000 0001]原 = [0000 0001]反 = [0000 0001]補 [-1] = [1000 0001]原 = [1111 1110]反 = [1111 1111]補 [+0] = [0000 0000]原 = [0000 0000]反 = [0000 0000]補 [-0] = [1000 0000]原 = [1111 1111]反 = [0000 0000]補
在計算系統中,數值一律用補碼來表示(存儲)。主要原因:使用補碼,可以將符號位和其余各位統一處理;同時,減法也可以按照加法來處理。另外,兩個用補碼表示的數相加時,如果最高位(符號位)有進位,則進位被舍棄;補碼與原碼的轉換過程幾乎是相同的。