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,記下餘數。 ·重複此步驟直到商不能再除,將記下來的數全部倒轉
注意:八進位制和十六進位制之間的轉換需要藉助十進位制和十六進位制
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也有缺點,但日後有空再討論)