1. 程式人生 > >9月11日-高階語言程式設計-課程內容(1)

9月11日-高階語言程式設計-課程內容(1)

9月11日第一次上課記錄

主要內容: 1. 數制 2. 資料單位 3. 記憶體地址 4. 編碼

1,數制

數制有兩個基本要素:基數和權位。 多少進位制基數就是多大,權位就是我們日常生活中說的多少位。 - 比如十進位制的599,基數就是10,5的權位就是100,兩個9的權位分別是10和1. 但嚴格來說,基數指的是用的數碼的個數。 - 舉個例子,十進位制用了1,2,3,4,5,6,7,8,9,0這十個數,那麼數碼就是10,基數就是10。 - 類似的說,二進位制用了0和1,數碼便是2,基數也是2。 - 每個進位制都有一個識別符號,稱為數制符號

數制 數制符號
二進位制 B
八進位制 O
十進位制 D
十六進位制 H

這些符號在轉換過程中不帶入計算,但是放在末尾方便識別數制。

2,數制的轉換

1,十進位制轉二進位制 小數前部分: ·將十進位制的數字除以2,記下餘數。 ·將商除以2,記下餘數。 ·重複此步驟直到商不能再除,將記下來的數全部倒轉。 小數部分: ·將十進位制的小數部分乘以2,若出現1則記下1,沒有則記下0。 ·取1之後的小數繼續迴圈此過程,直到不再產生小數部分。 ·按順序寫出記下的數字即可。 2,十進位制轉八進位制 小數前部分: ·將十進位制的數字除以8,記下餘數。 ·將商除以8,記下餘數。 ·重複此步驟直到商不能再除,將記下來的數全部倒轉

。 小數部分: ·將十進位制的小數部分乘以8,若出現整數部分則記下,沒有則記下0。 ·取小數部分繼續迴圈此過程,直到不再產生小數部分。 ·按順序寫下出記下的數字即可。 3,十進位制轉十六進位制 小數前部分: ·將十進位制的數字除以16,記下餘數,若餘數大於9應做相應轉換。 ·將商除以16,記下餘數。 ·重複此步驟直到商不能再除,將所有的數全部倒轉。 小數部分: ·將十進位制的小數部分乘以16,若出現整數部分則記下,沒有則記下0。 ·去小數部分繼續迴圈此過程,直到不再產生小數部分。 ·按順序寫下記下的數字即可。 4,二進位制轉八進位制 小數前部分: ·將數字從右到左分為三個一組,若數字不夠在最左端
補零。 ·將分好的數字按照二進位制轉十進位制的原則轉換成數字。 ·將所有數字拼湊在一起即可。 小數部分: ·將數字從左到右分為三個一組,若數字不夠在最右端補零。 ·將分好的數字按照二進位制轉十進位制的原則轉換成數字。 ·將所有數字拼湊在一起即可。 5,二進位制轉十進位制 小數前部分: ·將最左邊的數字乘以2加第二個數字,並設為x。 ·將x乘以2加第三個數字,代替x。 ·重複過程直到所有數字算完。 小數部分: ·將最左邊的數字乘以1/2記下。 ·將第二個數字乘以1/4記下,以此類推,記下所有數字。 ·重將數字加起來即可。 6,二進位制轉十六進位制 小數前部分: ·將數字從右到左分為四個一組,若數字不夠在最左端補零。 ·將分好的數字按照二進位制轉十進位制轉換成數字 ·將所有數字拼湊在一起即可。 小數部分: ·將數字從左到右分為四個一組,若數字不夠在最右端補零。 ·將分好的數字按照二進位制轉十進位制轉換成數字。 ·將所有數字拼湊在一起即可。

注意:八進位制和十六進位制之間的轉換需要藉助十進位制和十六進位制

2,資料單位

位元組(bit)是計算機記憶體的最小訪問單位。 1個位元組(byte)等於8個字(bit)。【即是8位二進位制】 電腦的最大記憶體和cpu的地址匯流排數目有關,即2的地址匯流排數目次方等於電腦的最大記憶體。

資料單位 轉換關係
字(bit) /
位元組(Byte) 8 b
千(Kilo) 1024 B;2^10 b
兆(Mega) 1024 KB;2^20 b
吉(Gega) 1024 MB;2^30 b
太(Tera) 1024GB;2^40 b
艾(Exa) 1024Tera;2^50 b

往後還有ZB,YB,BB,NB,DB以此類推即可 主存容量即對應記憶體,存放在實體地址。 虛存容量即對應儲存,存放在虛擬地址。 2的x次方等於容量大小,這個x是多少位,那麼它就有多少位地址。

3,編碼

ASCII碼佔七位二進位制來儲存字元,但是因為電腦記憶體能訪問的最小單位是一個位元組(即八位二進位制),所以往往在前面補一位。 ASCII碼基於特定位長,但是爭取儘可能短的碼長,所有排號由低到高。

符號 ASCII碼(十六進位制/二進位制)
回車 0DH/00001101
換行 0AH/00001010
空格 2OH/00100000
數字0~9 30H-39H/00110000-00111001
A,B,C 41H,42H,43H/略
a,b,c 61H,62H,63H/略

課外:ASCII碼是針對英文設計的,它對其他語言並不友好,因此,有人便開始建立新的字符集。進過演化,最終產生了Unicode碼。Unicode碼的前128位和ASCII碼相同,所以也可以將其看作ASCII碼的拓展。Unicode的優點很明顯,就是擴大了字符集,能裝下更多東西,但與此同時,它的缺點也得以暴露,即佔記憶體是ASCII碼的兩倍。因此,又出現了一些中間格式的字符集,即UTF。至此,外語輸入的問題便畫上了個句號。(雖然UTF也有缺點,但日後有空再討論)