1K = 210 = 1024 (Kilo)編碼
1M = 1024K = 220(Mega)spa
1G = 1024M = 230(Giga)設計
1T = 1024G = 240(Tera)3d
1P = 1024T = 250(Peta)orm
1個二進制位:bit (比特)blog
8個二進制位:Byte (字節) 1Byte = 8Bit內存
2個字節: Word (字) 1Word = 2Byte = 16bitci
數 制 | 基 數 | 數 碼 |
二進制 Binaryit 八進制 Octalio 十進制 Decimal 十六進制 Hexadecimal
|
2 8 10 16
|
0,1 0,1,2,3,4,5,6,7 0,1,2,3,4,5,6,7,8,9 0,1,2,3,4,5,6,7,8,9 A,B,C,D,E,F |
二進制 十六進制 相通
十進制 二進制 十 到 二 降冪法(除法)
十進制 十六進制 十 到 二 降冪法(除法)
十六進制:十六進一,借一當十六
例: X = 00FFH Y = 5555H Z = X ^ Y = ?
X = 0000 0000 1111 1111 B
^ Y = 0101 0101 0101 0101 B
Z = 0101 0101 1010 1010 B
因此 Z= 55AAH
附:位運算之左移和右移
左移只有一種——高位丟棄,低位補0
右移有兩種:一、邏輯右移——低位丟棄,高位補0
二、算術右移——低位丟棄,高位補充與最高位相同的值
一個機器字內的各個字節如何排列?
負數的二進制表示:補碼+1
unsigned tag
實例(w = 32)
即:
建議:不能僅僅由於取值範圍是非負數而使用
補碼加法的溢出
侷限性:只能精確地表示X/2k這類形式的數據(k爲整數)
以上三個值二進制表示將會出現無限循環,如1/10的二進制表示小數部分出現0011的無限循環。
示例:
數軸上的分佈:
向偶數舍入(Round-to-Even)
這是計算機內默認的舍入方式,也稱爲「向最近值的舍入」;其餘方式會產生系統偏差。
關鍵的設計決策是肯定兩個可能結果的中間數值的舍入:
對於二進制數而言:
一、規格化
二、舍入
三、調整(Postnormalize)
舍入可能致使溢出
包括單精度浮點數(single point floating)和雙精度浮點數(double point floating)。
C語言中int(32bit)、float(32bit)和double(64bit)三種數據類型之間的轉換規則:
示例:
定義:int x; float f=...; double d=... (d和f都不是NaN)
本章參考書籍:《Computer Systems-A Programmer's Perspective(2nd Edition)》