標籤:
一、資訊儲存。
1、數字表示
無符號編碼
補碼編碼
浮點數編碼。
2.資訊儲存
十六進位的表示:在C語言中,以0X或者Ox開頭的數字常量被認為是十六進位的值。在二進位標記法中,它的範圍是00000000(2)~11111111(2);如果用十進位表示就是0(10)~255(10);
字長:指明整數和指標資料的標稱大小。字長決定的最重要的系統參數就是虛擬位址空間的最大大小。
定址和位元組順序:小端法;大端法;雙端法
反組譯碼器:是一種確定可執行程式檔案所表示的指令序列的工具。
3.表示字串
最常見的是ASCII碼。文本資料比位元據具有的平台獨立性。
布爾代數
位向量:有固定長度為w、有0和1組成的串。
位極運算:實現掩碼運算,這裡的掩碼是一個位元模式,表示從一個字中選出的位的集合。
確定一個位級運算式的結果的最好的方法,就是將十六進位的參數擴充到二進位表示並執行二進位運算,再轉換回十六進位。
4.邏輯運算
邏輯運算認為所有非零的參數都表示TRUE,而參數0表示FALSE.他們返回1或者0;按位元運算只有在特殊情況下,也就是參數被限制為0或者1時,他們之間第二個重要的區別就是,如果對第一個參數求值,就能確定運算式的結果,那麼邏輯運算就不會對第二個參數求值。C語言標準並沒有明確定義應該使用哪種類型的右移,對於無符號資料,右移必須是邏輯的。對於有符號資料,算術的或者邏輯的右移都可以。實際上,幾乎所有的編譯器/機器組合都對有符號的資料使用算術右移,且許多程式員都假設機器會使用這種右移。
二、整數的表示。
1、整數資料型別
用位來編碼整數的兩種方式:一種只能表示非負數,而另一種只能表示負數、零和正數。
整數資料類型——表示有限範圍的整數,每種類型都能用關鍵字來指定大小,而不同大小的分配位元組數會根據機器的字長和編譯器有所不同。根據位元組分配,不同的大小所能表示的值的範圍是不同的。
無符號數編碼
補碼編碼——有符號數最常見的表示方法
有符號數的其他表示方法——反碼和原碼
2、有符號數和無符號數之間的轉換
轉換的原則是底層的位表示不變
零擴充——將一個無符號數轉換為一個更大的資料類型,表示在開頭加0。
符號擴充——將一個補碼數字轉換為一個更大的資料類型。
截斷數字。
三、整數運算
1、無符號數加法
一個算術運算溢出,是指出完整的整數結果不能放到資料類型的字長限制中去。
2、補碼加法
正溢出 x+y-2(w)
正常 x+y
負溢出 x+y+2(w)
3、補碼的非,無符號乘法,補碼乘法
4、乘以常數
無論是無符號運可能算還是補碼運算,乘以2的冪都會導致溢出。
四、浮點數
IEEE。
當一個數字不能被準確的表示為這種格式,就必須向上調整或者向下調整
1、二進位小數
第一步是考慮含有小數值的位元字。
2、IEEE浮點表示
符號
尾數
階碼
三種情況:規格化的值和非規劃的值和特殊值
3、舍入
4、浮點運算
感想:通過本章的學習,我們學了三種重要的數字表示,其中十六進位數的表示和位元的表示。還有有符號數有正碼和反碼之分,最常用的是用補碼來表示。有符號數和無符號數的轉化規則。整數類型的運算,還有浮點的表示和運算
第四周學習報告