- ==信息存儲==
- 本節介紹了高級語言(主要是C語言)的數據大小在機器存儲中是怎樣表示的,以及高級語言提供的計算符號.
-
1.1:字節(byte):8位的塊,做爲最小的存儲器單位。例如:機器級程序將存儲器視爲一個很是大的字節數組(虛擬存儲器),每個字節都有惟一的數字來標識(這一部分直接作在硬件及驅動上,而後系統直接使用).程序員
- eg:指針:不管其指向的是一個整數、一個結構或是謳歌其餘程序對象,都是某個存儲塊的第一個字節的虛擬地址。
-
1.2:字:每臺計算機都有一個字長(word size),指明整數和指針數據的標稱大小。虛擬地址是以一個字來編碼的,因此字長(字的長度)能決定系統參數(虛擬地址)的最大大小。eg:字是CPU進行一次並行處理的二進制位數,爲8的倍數。以32位機爲例,它的字長是2^32位長度,一次能夠處理4個字節的數據(也即一個整數和指針數據爲4個字節)數組
-
1.3 數據大小:上面說了在邏輯層和機器層的數據最小單位。下面展現下C語言中的數據層單位編碼
數據類型 | 字節(32位) | 幾個字(32位) | 計算機操做的次數(32位) | 字節(64位) | 幾個字(64位) | 計算機操做的次數(64位) |
---|---|---|---|---|---|---|
char | 1 | 1/4 | 4個/次 | 1 | 1/8 | 8個/次 |
short int | 2 | 1/2 | 2個/次 | 2 | 1/4 | 4個/次 |
int | 4 | 1 | 1個/次 | 4 | 1/2 | 2個/次 |
long int | 4 | 1 | 1個/次 | 8 | 1 | 1個/次 |
long long int | 8 | 2 | 0.5個/次 | 8 | 1 | 1個/次 |
char * | 4 | 1 | 1個/次 | 8 | 1 | 1個/次 |
float | 4 | 1 | 1個/次 | 4 | 1/2 | 2個/次 |
double | 8 | 1/2 | 0.5個/次 | 8 | 1 | 1個/次 |
- 1.4:尋址和字節順序:一個數據的內存存放位置,是先存放其最高位仍是最低位
大端法:從最低有效字節到最高有效字節的順序存儲對象.--intel 小端法:從最高有效字節到最低有效字節的順序存儲對象.--IBM/Sun Microsystems
- 例如: int x 的十六進制值爲:0x01234567。大端方:01:0x100;
大端方 | 01 | 23 | 45 | 67 |
---|---|---|---|---|
虛擬即地址 | 0x100 | 0x101 | 0x102 | 0x103 |
小端方 | 67 | 45 | 23 | 01 |
---|---|---|---|---|
虛擬即地址 | 0x103 | 0x102 | 0x101 | 0x100 |
-
1.5 字符串:C語言中的字符串被編碼爲以null(其值爲0) 字符結尾的字符數組。其中每一個字符都是由謳歌標準編碼表示,最多見的是ASCII字符碼。設計
-
1.6 布爾代數簡介:二進制值是計算機編碼、存儲和操做信息的核心,因此圍繞0和1的研究已經演化成了豐富的數學知識體系。這起源於1850年先後的喬治.布爾的工做,所以也成爲布爾代數。被注意到將邏輯值TRUE(真)和FALSE(假)編碼爲二進制值-和1,能設計出一種代數,以研究邏輯推理的基本原則.指針
-
1.7 C語言中的
位級
運算: C語言的一個頗有用的特性是它支持按位布爾運算.或(OR):| 、與(AND):& 、取反(NOT):~ 、異或(exclusive-or):^ .位級運算的一個常見用法是實現掩碼運算.code -
1.8 C語言中的
邏輯
運算:C語言提供了一組運算符||、&&和!對象 -
1.9 C語言中的
移位
運算:C語言提供了一組移位預算,一邊向左(<<)或者向右(>>)移動位模式.內存
- ==整數表示==
- 本節詳細介紹一下整型數據類型在機器中的各類表示、運算的表示方式。若是不是作驅動級別能夠不予理會
- 2.1 整形數據類型
- 2.2 無符號數的編碼
- 2.3 補碼編碼
- 2.4 無符號數和有符號數之間的轉換
- 2.5 C語言中的有符號數和無符號數
- 2.6 擴展一個數字的位表示
- 2.6 截斷數字
- 2.6 關於有符號數與無符號數的建議
- ==整數運算==
- 計算機運算的有限性會形成奇怪的現象,例如兩個正數相加會得出一個負數,理解計算機運算的細微之處可以幫助程序員編寫更急可靠的代碼
- 3.1 無符號加法
- 3.2 補碼加法
- 3.3 補碼的非
- 3.4 無符號乘法
- 3.5 補碼乘法
- 3.6 除以2的冪
- 3.7 關於整數運算的最後思考
浮點數
- 本節討論在IEEEE浮點格式中是如何表示數組。討論加法、乘法和關係運算符的數學屬性。
- 4.1 二進制小數
- 4.2 IEEE浮點表示
- 4.3 舍入
- 4.4 浮點計算
- 4.5 C語言中的浮點數