一、進製基數制及其轉換
1.如果只用r個基本符號表示數值,則稱其為r進製(radix-r number system),r稱為該數制的基數(radix)。
2.每種數制都使用位置表示法。也就是處於不同位置的數符所代表的值不同,與它所在位置的權值有關。
3.十進位制 轉化成 二進位制 口訣:整數部分,除二取餘。小數部分,乘二取整。(十進位制轉化成任意進製數都口使用次口訣)。
4.小進製轉化成大進製(此處略)
二、二進位制運算規則
1.加法:「逢二進一」減法:「借一當二」其他一樣。
三、機器數和碼制
1.機器數:各種資料在計算機中所表示的形式 其特點採用二進位制計數制,符號用0或1表示《小數點隱含表示而不佔位置》。
2.真值:機器數到對應的實際數值
3.純整數:小數點位置在機器數值最低數值位之後。
4.純小數:小數點位置在機器數值最高數值位之前。
5.無符號數:表數範圍是非負數即全部二進位制位均代表數值,沒有符號位。
6.帶符號機器數 不同的編碼方法:
1)原碼表示法:數值x的原碼記為[x]原
最高位符號位,0為正1為負其餘的n-1表示數值的絕對值。
重點:數值0的原碼表示形式:[+0]原=00000000 [-0]原=10000000
例1(n=8):
[+1]原=00000001 [-1]原=10000001
[+127]原=01111111 [-127]原=11111111
2)反碼表示法:數值x的原碼記為[x]反
正數的反碼與原碼相同,負數的反碼則是其絕對值按位求反
重點:數值0的反碼表示形式:[+0]反=00000000 [-0]反=11111111
例2:[+1]反=00000001 [-1]反=11111110
[+127]反=01111111 [-127]反=10000000
3)補碼表示法:數值x的原碼記為[x]補
正數的補碼和反碼與原碼相同,負數的補碼等於其反碼的末尾加1
重點:0有唯一的編碼:[+0]補=00000000 [-0]補=00000000
[+1]補=00000001 [-1]補=11111111
[+127]補=01111111 [-127]補=10000001
4)移碼表示法:(此略)
四、定點數和浮點數
定點數:
顧名思義就是表示資料時小數點的位置固定不變。小數的位置通常有兩種約定方式:
定點整數,定點小數。
浮點數:
浮點數是指小數點不固定的數,他表示更大範圍的數。
乙個實數可以寫成多種表示形式:例如:
83.125=10^3 x0.083125 或 10^4x0.0083125等
二進位制數: 例如:1011.10101可寫成 2^4x0.101110101
總結式:n=2^exf(其中e為階碼,f為尾數)這種表示資料的方法稱為浮點表示法。
浮點數的表示格式如下:
|--------|----------|---------|--------|
| 階符 | 階碼 | 數符 | 尾數 |
|--------|----------|---------|--------|
由此不難看出浮點數所能表示的 數值範圍 主要由《階碼》決定;數值的精度主要由《尾數》決定
注意:當尾數的值不為0時規定尾數域的最高有效位應為1,這是浮點數的規格化表示。
注意:1)在n=2^exf 中f 當f>=0 時 則其規格化為01******x...其中x可以為0也可為1
2)當f<0 則其規格化為10******x...其中x可以為0也可為1
參考文獻《程式設計師教程》
記憶體表示,位運算及位元組序
這篇文章始於對這麼個程式的思考 intmain int argc char argv 用二進位制編輯器 如ultraedit 開啟程式輸出結果檔案 test.txt 檢視,結果是 87 d6 12 00 如果將87d61200直接輸入計算器,轉變成十進位制數,那就是2278953472,並非我們所期...
記憶體表示位運算及位元組序
原文 intmain int argc char argv 用二進位制編輯器 如ultraedit 開啟程式輸出結果檔案 test.txt 檢視,結果是 87 d6 12 00 如果將87d61200直接輸入計算器,轉變成十進位制數,那就是2278953472,並非我們所期待的1234567,但如果...
資料表示 運算與校驗
進製計數制 數制的基與權 在任一數制中,每乙個數字上允許使用的記數符號的個數被稱為該數制的基數。每一位都對應1個表示該位在數碼中的位置的值,這個值就稱為數字的權值。數值轉換 二進位制 十進位制 八進位制 十六進製制。十進位制整數轉換為任意進製整數的規則是 除 以 基取餘 先余為低,後余為高 十進位制...