9月12日-高階語言程式設計-課程內容(2)
9月12日第二次上課記錄
主要內容: 1,ASCII碼 2,IP地址 3,模的運算 4,浮點數編碼 5,多媒體編碼
1,ASCII碼
ASCII碼儲存在七位二進位制,但是因為計算機記憶體最小訪問單位是一個位元組,即八位二進位制,故在最左端新增一位,用作校驗。
ASCII碼中1的奇偶即是校驗位的大小,如果有奇數個1,那麼校驗位則為1,如果有偶數個1,校驗位則為0。比如1 00100000,0 10010000。
ASCII碼中32~126(共95個)是字元(32是空格),0~31及127(共33個)是控制字元或通訊專用字元(其餘為可顯示字元),其中65~90為26個大寫英文字母,97~122號為26個小寫英文字母,其餘為一些標點符號、運算子號等。
隨著中國電腦開始普及,ASCII碼不能代表中文的問題愈發突出,1980年,中國國家標準局釋出了GB2312-80,收入漢字6763個和非漢字圖形字元682個。整個字符集分成94個區,每區有94個位。每個區位上只有一個字元,因此可用所在的區和位來對漢字進行編碼,稱為區位碼。
一個漢字佔16位,兩個位元組,前一個位元組存放區號,稱為區位元組(高位位元組),後一個位元組存放位號,稱為位位元組(低位位元組)。
區位元組使用了0xA1-0xF7(把01-87區的區號加上0xA0【160】),位位元組使用了0xA1-0xFE(把01-94加上 0xA0【160】)。區號0xA0之前存放的是漢字外其他字元,如英文字元,圖形字元和控制字元等。
區位碼=區位元組+位位元組
拓展:
- GB18030-2000將漢字擴充至2.7萬。
GB18030-2005將漢字擴充至8萬。
Unicode是USC碼的子集,採用2位元組,16位地址。ASCII碼仍然是電腦運作的基礎,不過字元太少,所有更多由Unicode碼錶示,它包含了多國語言。
2,IP地址
IP地址全稱網際網路協議地址,它為網際網路上的每一個網路和每一臺主機分配一個邏輯地址,以此來遮蔽實體地址的差異。
- IPv4採用32位地址長度,只有大約43億個地址,估計在2005~2010年間將被分配完畢,大部分都在美國,中國基本只能使用代理。
- IPv6採用128位地址長度,幾乎可以不受限制地提供地址。
二進位制內容補充: 有無符號情況下,八位元組都能儲存256個字,二進位制第一位可用作表示符號,以下為例: 無符號
二進位制 | 十進位制 |
---|---|
00000000 | 0 |
00000001 | 1 |
… | … |
01111111 | 127 |
10000000 | 128 |
10000001 | 129 |
… | … |
11111110 | 254 |
11111111 | 255 |
有符號
二進位制 | 十進位制 |
---|---|
0 0000000 | 0 |
0 0000001 | 1 |
… | … |
0 1111111 | 127 |
1 0000000 | 0 |
1 0000001 | -1 |
… | … |
1 1111110 | -126 |
1 1111111 | -127 |
3,模的運算
- 模是一個系統所能表示數的個數,例如五進位制的模是5,二進位制的模是2。
- 超出模能表達的範圍,資料就會溢位,例如當模為12的時候,13就會變成1,-9就會變成3。
1,補碼 一個負整數與其補數相加,和為模。利用這點,我們可以計算出補碼,並用補碼錶示這個負數。第一位數代表符號,負數是1,正數是0。 求補碼:先求反碼,最低位再加1即可。
一個數字代表多少取決於你的用途,例如65,如果你輸出數值,就是65,輸出正負,就是A。
一個二進位制正負取決於輸出,你可以認為他是帶符號的,也可以認為是不帶符號的,就事論事。
4,浮點數編碼
符號位:正數為0,負數為1 指數位:十進位制127+指數(轉換成二進位制後,對其進行科學記數法轉換可得,整數部分只保留一位,正負均可),不足八位則補齊。 尾數位:遵循十進位制轉二進位制對小數部分進行轉換,得到的數字,不足規定尾數則補齊。 將所有數字拼接則可得到浮點數編碼。
符號(1位) | 階碼 | 尾數 |
---|
IEEE754中規定了幾種浮點數:
浮點數型別 | 位數 | 符號 | 階碼 | 尾數 |
---|---|---|---|---|
短浮點數 | 32 | 1 | 8 | 23 |
長浮點數 | 64 | 1 | 8 | 52 |
擴充浮點數 | 80 | 1 | 8 | 64 |
5,多媒體編碼
影象:顏色數量8bit(256色),16bit(65536色),24bit(16M色)。色彩越多,影象越精緻。 聲音:取樣頻率有22.05KHz,44.1KHz,48KHz三個等級,頻率越高,聲音還原度越高。
因為計算機導論和高階語言程式設計都有講這個內容,等學習完之後再彙總