進制運算的基礎
- 進制概述
- 二進制運算的基礎
進制概述
-
進位制是一種計數方式,亦稱進位計數法或位值計數法
-
有限種數字符號來表示無限的數值
-
使用的數字符號的數目稱為這種進位制的基數或底數
n=10[0-9]稱為十進制
-
計算機喜歡二進制,但是二進制表達太長了
-
使用大進制位可以解決這個問題
-
八進制、十六進制滿足2的n次方的要求
二進制數據的表示方法
二進制運算的基礎
有符號數與無符號數
負數怎么辦?
+表示正數,-表示負數
有符號數與無符號數
原碼表示法
-
使用0表示正數、1表示負數
-
規定符號位位於數值第一位
-
表達簡單明了,是人類最容易理解的表示法
0有兩種表示方法:00、10
原碼進行運算非常復雜,特別是兩個操作數符號不同的時候
-
判斷兩個操作數絕對值大小
-
使用絕對值大的數減去絕對值小的數
-
對於符號值,以絕對值大的為准
希望能找到不同符號操作數更加簡單的運算方法
希望找到使用正數代替負數的方法
使用加法操作代替減法操作,從而消除減法
二進制的補碼表示法
例子1:n=4 , x=13 ,計算x的二進制原碼和補碼
例子2:x=-13,計算x的二進制原碼和補碼
例子3:x=-7,計算x的二進制原碼和補碼
例子4:x=-1,計算x的二進制原碼和補碼
二進制的補碼表示法
在負數的補碼計算過程中,還是使用了減法
二進制的反碼表示法
- 減法運算復雜,希望找到使用正數替代負數的方法
- 使用假發代替減法操作,從而消除減法
反碼的目的是找出原碼和補碼之間的規律,消除轉換過程中的減法。
反碼與補碼的區別
正數的補碼和反碼都是它本身
負數的反碼等於原碼除符號位外按位取反
負數的補碼等於反碼+1
小數的補碼
定點數與浮點數
-
定點數的表示方法
-
浮點數的表示方法
-
定點數與浮點數的對比
定點數的表示方法
- 小數點固定在某個位置的數稱為定點數
浮點數的表示方法
- 計算機處理的很大程度上不是純小數或純整數
- 數據范圍很大,定點數難以表達
浮點數的表示格式
浮點數的表示范圍
浮點數的表示范圍
單精度浮點數:使用4字節、32位來表達浮點數(float)
雙精度浮點數: 使用8字節、64位來表達浮點數(double)
浮點數的規格化
這下面的不能這樣做
定點數與浮點數的對比
-
當定點數與浮點數位數相同時,浮點數表示的范圍更大
-
當浮點數尾數為規格化數時,浮點數的精度更高
-
浮點數運算包含階碼和尾數,浮點數的運算更為復雜
定點數與浮點數
-
定點數的表示方法
-
浮點數的表示方法
-
定點數與浮點數的對比
浮點數的加減法運算
對階
-
浮點數尾數運算簡單
-
浮點數位數實際小數位與階碼有關
-
階碼按小階看齊大階的原則
對齊的目的是使得兩個浮點數階碼一致,使得尾數可以進行運算
尾數求和
- 使用補碼進行運算
- 減法運算轉化為加法運算:A-B = A+(-B)