日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

计算机组成原理--数的表示及计算

發布時間:2023/12/15 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算机组成原理--数的表示及计算 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

      • 三、數的表示及計算
        • 1.定點數的表示
          • 1.原碼表示范圍:
          • 2.補碼表示的范圍
        • 2.定點數運算
          • 1.加減運算:
          • 2.移位運算
            • **邏輯移位:** 邏輯左移,邏輯右移
            • **循環移位:**
            • **算數移位:**
            • 溢出過半:
        • 3.浮點數的表示
        • 4.浮點數的運算

三、數的表示及計算

1.定點數的表示

1.原碼表示范圍:

符號位和數據為i相對獨立

N位原碼表示范圍:

二進制形式:
[1111…11,01111…111]

整數:
[?(2n?1?1),2n?1?1][-(2^{n-1}-1),2^{n-1}-1][?(2n?1?1),2n?1?1]
共計:2n?12^n-12n?1

小數:
[?(1?2?(n?1)),1?2?(n?1)][-(1-2^{-(n-1)}),1-2^{-(n-1)}][?(1?2?(n?1)),1?2?(n?1)]
共計:2n?12^n-12n?1

因為0有兩種表示,所以比N為能表示的狀態少1種。

2.補碼表示的范圍

N位補碼表示范圍

-4-2-10124
補碼1100111011110000000100100100

思考:
[1000]補 的真值是誰 ?

是-8,也就是說補碼可以表示出比原碼多一位的數,而且0的表示方法唯一。

考慮N為補碼的表示形式:

形式真值 (整數)真值(小數)
最大正數011111…1111$2^{n-1}-11?2?(n?1)1-2^{-(n-1)}1?2?(n?1)
最大負數11…11111111?2n?1-2^{n-1}?2n?1?(1?2?(n?1))?2?(n?1)=?1-(1-2^{-(n-1)})-2^{-(n-1)}=-1?(1?2?(n?1))?2?(n?1)=?1

2.定點數運算

1.加減運算:

補碼的加減法基本公式:

[A+B]補=[A]補+[B]補
[A-B]補=[A]補+[-B]補
優點:直接運算

溢出的判斷:
雙符號位法:兩個符號位同時運算,雙符號位不同則溢出,上溢和下溢。

2.移位運算
邏輯移位: 邏輯左移,邏輯右移

移出位移走,補位位補0

eg:1010 左移:0100 右移:0101
循環移位:

小循環移位小循環左移,小循環右移
移出移入到補位位,同時移入到標記為C中
在數字最前和最后分別有一個C位,儲存溢出位

eg:1010 左移:1 0101 右移:0101 0

大循環移位:大循環左移,大循環右移
移出位移入到C位,C位移入到補位位

eg:0 1010左移:1 0100右移:0101 0
算數移位:

(1)保留數值的數學意義,左移相當于乘以2,右移相當于除以2
(2)存在溢出或精度喪失
原碼:符號位不動,數值位邏輯左右移
補碼:帶著符號位一起移動
移出位移走。補位位:高位補符號位,地位補零。

溢出過半:

原碼:符號位為0或1,數值位最高位為1
補碼:符號位為0,數值最高位為1;符號位為1,數值最高位為0.

3.浮點數的表示

規則:
1)組成部分、順序
2)每個組成部分位數
3)尾數和階碼表示形式:
尾數:定點小數
階碼:定點整數

一、IEEE754標準
1.格式:
32位(float)和64位(double)

2. IEEE有關階碼的規定
(1)用修正過的移碼表示
修正過的移碼可以表示0和±∞;

float:真值(e)=機器數的值(E)-128 double:真值(e)=機器數的值(E)-1024

(2)有關移碼
e=E?2n?1e=E-2^{n-1}e=E?2n?1

(3)E位全零或者全1的狀態都不用

0:表示數值01:表示+-

所以正式的IEEE754標準:
e=E?(2n?1?1)e=E-(2^{n-1}-1)e=E?(2n?1?1)

3. IEEE有關尾數的規定
(1)用修正過的原碼表示尾數
(2)最高數值位必須為1,并且省略。
這樣進一步提高了數據的精度。
(3)什么是規格化的尾數(M)
∣M∣>=1/2=(0.1)2|M|>=1/2=(0.1)_2M>=1/2=(0.1)2?

因為尾數最高的數值位為1,并且省略。
E:階碼
S:符號位
M:尾數
float:(?1)s?1.M?2E?127(-1)^s*1.M*2^{E-127}(?1)s?1.M?2E?127
double:(?1)s?1.M?2E?1023(-1)^s*1.M*2^{E-1023}(?1)s?1.M?2E?1023

4. IEEE與真值的相互轉換
eg:Float類型413C0000H的真值是多少:

413C0000H=(01000001001111000000000000000000)2413C0000H =(0100 0001 0011 1100 0000 0000 0000 0000)_2413C0000H=(01000001001111000000000000000000)2?

S=0;M=0111;E=10000010S=0;M=0111;E=1000 0010S=0M=0111E=10000010

e=(?1)s?1.M?2E?127e=(-1)^s*1.M*2^{E-127}e=(?1)s?1.M?2E?127
=(?1)0?1.01111?2130?127=(-1)^0*1.01111*2^{130-127}=(?1)0?1.01111?2130?127
=(1011.11)2=(1011.11)_2=(1011.11)2?
=11.75=11.75=11.75

5. Float類型的表示范圍

二、非IEEE754標準

1.有機組成部分

每部分可以用不同的編碼表示,最常見的階碼和尾數都用補碼表示。

2. 表示范圍
(1)為什么要規格化?
為了進一步提高數據精度
(2)規格化的本質是什么?
∣尾數∣>=0.5|尾數|>=0.5>=0.5

(3)這種本質的體現是什么?
尾數分別用原碼和補碼表示的時候規格化的尾數是什么形式的?
原碼:數值最高位為1
補碼:1.0xxxxx或者0.1xxxxx或者1.1xxxxx

(4)IEEE754標準如何做的規劃化?
尾數最高的數值位為1,并且省略。

設某浮點數階碼和尾數都用4位二進制補碼表示。

4.浮點數的運算

一、IEEE754標準的加減運算
(1)0操作數檢查
(2)對階:小階向大階對齊,尾數右移
(3)尾數加減:補碼雙符號位
(4)規格化: 左規;右規

左規:尾數+-不發生溢出,結果不是規格化,左規尾數不定,階碼-1,知道規格化為止; 右規:尾數+-發生溢出,帶兩個符號位右移移位,階碼+1

(5)舍入,階碼采用補碼雙符號位運算。0舍1入。
(6)判斷溢出
在溢出判斷中,什么樣的情況才算溢出?
階碼溢出才叫溢出
尾數溢出是否標志著結果的溢出?
尾數溢出不表示結果的溢出

總結

以上是生活随笔為你收集整理的计算机组成原理--数的表示及计算的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。