6 計算機的運算方法

2022-04-03 15:28:50 字數 2024 閱讀 1900

6.3 定點運算

6.4 浮點四則運算

解析一下:這是從數學上描述的負數的原碼的表示:

x的原碼的真值 = 2^n的真值 - x的真值,也就是2^n的真值 減去 x的真值得到的數的二進位制表示就是x的原碼。

比如-2, 2^2 - -2 = 6 ,所以-2的原碼表示 是6的原碼110

x是負數時,|x|+2^n = -x +2^n = 2^n - x

例如 -2 即 2^2 - (-2) ,也就是100 - -10 = 110,就是2的原碼

減乙個數 = 加上該數的補數。

即a-b= a+b的補數 = a + (模-b)

鐘錶中(mod 12),時針**4h,

負數的模因為需要加符號位的原因,比通常意義的模大一倍。

證明:因為:

x原 = 2^n - x真

x補 = 2^(n+1) + x真

所以:x原= 2^(n+1) - (x補-2^n) = (n+1)個1  - (x補-2^n)  +1 

所以x原 是

x補符號位保持不變,每位取反,末位加1 。

原碼除符號位外每位取反末位加1  ->補碼

根據上圖可以看出,1和-127的補碼的整數部分是一樣的,

所以求-127的補碼時,可以轉換為求-1的原碼

互為正負數的補碼相加為2^(n+1)

對於<=0的數,

給出補碼求真值:模減去整數字,新增正負號。

給出反碼求真值: 模減去整數字+1,新增正負號。

移碼是把補碼符號位取反

規格化浮點數的原因:為了更大的精確度。

規格化浮點數,要求小數點後一位不能是0,必須是1。

(有點像科學計數法,但是和科學計數法比起來,小數點要左移一位。  )

比如位數是2位情況下,

計算 0.1*0.1 = 0.01*2^1  *   0.01*2^1 = 0.0001*2^2,因為尾數只有2位,所以得到0.00*2^2,丟失精度。

如果規格化,0.1*0.1 = 0.1*2^0  *   0.1*2^0= 0.01*2^0,因為尾數只有2位,所以得到0.01*2^0,最大可能保留精度

注意,補碼右移時,比如:-13>>2 = 7

乙個暫存器儲存被乘數,乙個儲存乘數,乙個儲存符號位

序列為時間為 2n

並行為 2.5

單重分組為 2.5*組數

多重分組為 2.5*(重數+1)

一般為串並混合,下圖的時間為 2.5*3 +2.5 = 10

計算機的運算方法

考慮到指標的本質是無符號整型,於是歸根結底來說就兩個型別 整型和浮點型 儲存 這個環節以4bit的有符號整型為例 現今計算機中的int幾乎全部以補碼形式儲存,是因為補碼自有他的精妙所在,為了闡述這種精妙,需要引入原碼,反碼的概念,但這兩個東西是已經被淘汰掉的儲存形式,因此沒必要記憶它們,目前來看,原...

計算機的運算方法習題

一.單選題 共18題,36.0分 1若 x 補 0.1101010,則 x 原 2.0分 a 1.0010101 b 1.0010110 c 0.0010110 d 0.1101010 正確答案 d 我的答案 d 得分 2.0分 2已知x為整數,且 x 補 10011011,則x的十進位制數值是 2...

第6章 計算機的運算方法(上) 測試

1單選 1分 假設浮點數的表示形式如下圖,階碼和尾數都用原碼表示並且m 4,n 10,用非規格化形式表示時,下列敘述正確的是 d a.可以表示的最大負數為 2 16 2 10 b.可以表示的最小正數為 2 15 2 9 c.可以表示的最大正數為 2 15 2 9 d.可以表示的最小負數為 215 1...