考研黨看到詳細到讓你流淚的計組中的數據表示和運算,還不來看!!

小寶貝們

今天我們就和數字打打交道,一片博客來學會計算機組成原理中數據的表示和運算,說實話不學不知道,一學嚇一跳,過段時間又忘掉、考研黨們,趕緊把他收藏起來以免以後忘記了
在這裏插入圖片描述

目錄
一、數制與編碼
1、進位計數制及其相互轉換
2、真值和機器數…
3、BCD碼
4、字符與字符串
5、校驗碼
二、定點數的表示與運算
1、定點數的表示
2、定點數的運算
三、浮點數的表示與運算
1、浮點數的表示
2、浮點數的加減運算


一、數制與編碼
後綴:
二進制:B
八進制:Q
十進制:D
十六進制:H
1、進位計數制及其相互轉換
二進制有兩種狀態0和1,1真,0假
不同進制之間的相互轉換
這裏就用例題來說明了
(1)二進制轉換爲八進制和十六進制
原則:分爲3位(八進制)或4位一組(十六進制),缺少的補0
16進制0~ 9, 10~ 15A~F
在這裏插入圖片描述
(二)任意進制轉換爲十進制
例題:
在這裏插入圖片描述
(三)十進制轉換爲任意進制
十進制123.675轉換爲二進制
解:整數部分
在這裏插入圖片描述
所以整數部分123=1111011
小數部分
在這裏插入圖片描述
所以0.6875=0.1011

2、真值和機器數
+爲正數,-爲負數
帶±號的數爲真值
0代表正,1代表負數
符號數字化爲及其數字化

3、BCD碼
1)8421碼:有權碼8421
2)餘三碼:無權碼在8421碼上加0011
3)2421碼:有權碼2421

4、字符與字符串
ASCLL碼

5、校驗碼
碼距大於等於2的具有校驗能力
能夠發現或者自動糾錯的數據編碼(計算機網絡差錯控制)通過增加冗餘碼
1)奇偶校驗碼
碼距等於2
奇校驗碼:整個校驗碼中1的個數爲奇數
偶校驗碼:整個校驗碼中1的個數爲偶數
在這裏插入圖片描述

缺點:具有侷限性,奇偶校驗只能發現數據代碼中奇數位的出錯情況,但不能糾正錯誤
例題:
給出兩個編碼1001101和1010111的奇校驗碼和偶校驗碼
1001101 :11001101(奇校驗)01001101(偶校驗)
1010111:01010111(奇校驗) 11010111(偶校驗)

2)海明碼
可以發現錯位,指出錯位的位置,並且爲自動糾錯提供依據
通過這道例題來了解海明碼
例題:
在這裏插入圖片描述
在這裏插入圖片描述
3)循環冗餘校驗碼

二、定點數的表示與運算
1、定點數的表示
小數點位置固定 X=x0x1x2x3……xn(其中x0爲符號位)
在這裏插入圖片描述
在這裏插入圖片描述

定點小數 定點整數
定義 小數點固定在最高有效數位之前,符號位之後 純整數,小數點位置隱含固定在最低有效位之後
x0=0時真值 1-2-n 2n-1
x0=1時真值 -(1-2-n) -(2n-1)

2)最高位表示該數符號

純小數 純整數
源碼 [x]=x(1>x>=0),=1-x=1+|x|(0>=x>-1) [x]=0,x(2n>x>=0),=2n-x=2n+|x|(0>=x>-2n
補碼 [x]=x(1>x>=0),=2+x=2-|x|(0>=x>-1) [x]=0,x(2n>x>=0),=2n+1+x=2n+1-|x|(0>=x>-2n
反碼 正數x1=+1011,x2=-1011字長爲8【x1=0,0001011;【x21,1110100
移碼 只能用來表示整數就是在真值上加一個常數這個常數通常是2n 例題若正數x1=+10101,x2=-10101,字長爲8位移碼【x1=27+10101=1,0010101;【x2=27+(-10101)=0,1101011

在這裏插入圖片描述
2、定點數的運算
移位運算,有符號的移位稱爲算術移位,無符號數邏輯代碼爲邏輯移位
(1)(算術移位)移動過程符號不變

在這裏插入圖片描述

(2)(邏輯移位)邏輯左移時,高位丟,低位填0

(3)循環移位
帶進位標誌位CF(大循環)
不帶(小循環)
特點:移出得數位又被移入數據中,是否帶進位看是否將進位標誌位加入循環位移中在這裏插入圖片描述
原碼定點數加減法運算
加法規則:先判斷符號位,相同絕對值相加,不同絕對值大的減去絕對值小的,符號位與絕對值大的相同
減法規則:將減數符號位取反,後被減數和他按原碼相加運算.
注意:機器字長左邊出現溢出,將溢出位丟掉

補碼定點數加減法運算
設機器字長(n+1)計算機普遍採用
(1)參與運算的兩個操作數均用補碼錶示
(2)按二進制運算逢二進一
(3)符號位與數值位按同樣規則一起運算,符號位運算產生的進位要丟掉,結果的符號位由運算得出
(4)補碼加減法運算根據下面公式
當參與運算的數是定點小數,模M=2;當參與運算的是定點整數,模M=2n+1
[A+B]=[A]+[B](Mod M)
[A-B]=[A]+[-B](Mod M)

Mod M是爲了將溢出位丟掉
(5)補碼結果還是補碼
注意:對於整數原碼=反碼=補碼=真值
在這裏插入圖片描述溢出概念和判別方法
只有兩個符號相同的數相加或兩個符號相異的數相減纔可以產生溢出,產生溢出結果是錯誤的
在這裏插入圖片描述
(1)採用一位符號
無論是加法還是減法,只要參加操作的兩個數符號相同,結果又與原操作數符號不同,則表示溢出
在這裏插入圖片描述
(2)採用雙符號位
運算結果的兩個符號位Ss1Ss2相同,表示未溢出,不同表示溢出,最高爲表示真正的符號位
(3)採用一位符號位根據數據位的進位情況判斷溢出
若符號位的進位CS與最高數位的進位C1相同,則無溢出,反之溢出

定點數乘法運算
通過累加和右移實現
(1)原碼一位乘法
符號位與數值位分開
乘積符號是由兩個數的符號位“異或”形成的
數值部分兩個數的絕對值相乘之積
設[X] =xs.x1x2…xn, , [X] =ys.y1y2…yn,則運算規則如下:
①被乘數和乘數均取絕對值參加運算,符號位爲xs異或ys
①部分積的長度同被乘數,取n+1位,以便存放乘法過程中絕對值大於等於1的值,初值爲0。
③從乘數的最低位yn,開始判斷:若yn=1,則部分積加上被乘|x|,然後右移一位;若yn=0,則部分積加上0,然後右移一位。
④)重複步驟③,判斷n次。
由於乘積的數值部分是兩數絕對值相乘的結果,因此原碼一位乘法運算過程中的右移操作均爲邏輯右移。
在這裏插入圖片描述
(2)補碼一位乘法(Booth算法)
規則:
1)符號位參與預算,運算的數均以補碼錶示
2)乘數末尾加一位yn+1初值爲0
3)移位按補碼右移規則

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
定點數的除法運算
累加左移
(1)原碼除法運算
①商的符號QS=Xs取餘YS
②商的數值:lQ|=|X|/|Y|。
求|Q|的不恢復餘數法運算規則如下。
①符號位不參加運算。
②先用被除數減去除數(|X|-|Y|=|X|+(-|Y|)=|X|+[-|Y|]),當餘數爲正時,商上1,餘數和商左移一位,再減去除數;當餘數爲負時,商上0,餘數和商左移一位,再加上除數。
③當第n+1步餘數爲負時,需加上|Y得到第n+1步正確的餘數(餘數與被除數同號)
在這裏插入圖片描述
(2)補碼除法運算
符號位與數值位一起參與運算,
上商的原則根據餘數和除數的符號位共同決定,同號上商“1”,異號上商“0”;最後一步商恆置“1”。
加減交替法的規則如下:
①符號位參加運算,除數與被除數均用補碼錶示,商和餘數也用補碼錶示。
②若被除數與除數同號,則被除數減去除數;若被除數與除數異號,則被除數加上除數。
③若餘數與除數同號,則商上1,餘數左移一位減去除數;若餘數與除數異號,則商上0,餘數左移一位加上除數。
④重複執行第③步操作n次。
⑤若對商的精度沒有特殊要求,則一般採用“末位恆置1”法。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
三、浮點數的表示與運算
1、浮點數的表示
小數點的位置根據需要而浮動,這就是浮點數。
例如:
N=M×rE
式中:r爲浮點數階碼的底,與尾數的基數相同,通常r=2。E和M都是帶符號數E叫做階碼,M叫做尾數。
在這裏插入圖片描述
在大多數計算機中,尾數爲純小數,常用原碼或補碼錶示;階碼爲純整數,常用移碼或補碼錶示
(2)規格化浮點數
規定尾數的最高位必須是一個有效值
左規:將尾數算術左移一位,階碼減一,可能需要多次
右規:結果尾數出現溢出,將尾數算術右移一位,階碼加一,只需要一次

在這裏插入圖片描述
IEEE 754浮點數標準
在這裏插入圖片描述

S(1位) E(8位) M(23位)

其中S爲尾符,E爲階碼,M爲尾數
在這裏插入圖片描述
規格化
短浮點數的真值(-1)s×1.M×2E-127
長浮點數的真值(-1)s×1.M×2E-1023
注:s=0表示正數,s=1表示負數
短浮點數E的取值1~254,M等於32位
長浮點數E的取值1~2046,M等於52位

在這裏插入圖片描述
float(單精度)表示最大正整數2128-2104
2、浮點數的加減運算
階碼運算和尾碼運算分開進行,UI版採用補碼步驟:
(1)對階:小數點位置對其
(2)尾數求和:
(3)規格化:
(4)舍入
(5)溢出判斷
補充:
1.在C語言中不同類型混合運算遵守“類型提升”,低類型轉換爲高類型,最終結果是double
規律char——int——long——double
2.各編碼的的數值範圍
在這裏插入圖片描述
3.浮點數的表示範圍
在這裏插入圖片描述

嗖嘎寫的我頭都大了,發現千萬不要和數字打交道

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章