運算方法和運算器

2021-08-07 09:10:05 字數 2023 閱讀 7032

計算機中的資料分為:數值資料和非數值資料,數值資料有確定的值,有大小正負之分,能在數軸上找到它們的位置;非數值資料一般 用來表示符號或者文字,無值的含義。

編碼格式

正數的原碼,反碼和補碼都一樣。

負數的原碼:符號位為1,其餘不變。

負數的反碼:在其原碼的基礎上, 符號位不變,數值位取反。

負數的補碼:是在其原碼的基礎上, 符號位不變, 其餘各位取反, 最後+1. (即在反碼的基礎上+1)。

移碼:不管正負數,只要將其補碼的符號位取反即可。

例如:x=-101011 , [x]原= 10101011 ,[x]反=11010100,[x]補=11010101,[x]移=01010101

例:0000 0001的真值 = +000 0001 = +1

1000 0001的真值 = –000 0001 = –1

[+1]原 = 0000 0001

[-1]原 = 1000 0001

[+1] = [00000001]原 = [00000001]反

[-1] = [10000001]原 = [11111110]反

[+1] = [00000001]原 = [00000001]反 = [00000001]補

[-1] = [10000001]原 = [11111110]反 = [11111111]補

同餘的概念

兩個整數a,b,若它們除以整數m所得的餘數相等,則稱a,b對於模m同餘

記作 a ≡ b (mod m)

讀作 a 與 b 關於模 m 同餘。

4 mod 12 = 4

16 mod 12 = 4

28 mod 12 = 4

同餘的兩個數具有互補關係。例如-8和4對模12是同餘的。

補碼加法:[x+y]補=[x]補+[y]補

補碼減法:[x-y]補=[x]補+[-y]補,[-y]補={[y]補]變補

注意乙個數的補碼與變補是不同的,對於正數補碼與原碼相同,對於負數,原碼變成補碼時,符號位不變,數值各位取反末尾加1.而變補不論這個數是正數還是負數,連同符號位全部取反末尾加1.

如果[y]補表示的是正數,則變補後就是負數。

補碼運算規則:

1、參與運算的兩個數都是補碼表示

2、符號位作為數的一部分參與運算

3、若加法,直接相加,若減法,則將減數變補後再與被減數相加

4、運算結果仍用補碼

5、符號位進製為模製,應該去掉

例如:[x]補=00110110 [y]補=11001101 求:[x+y]補、[x-y]補

補碼溢位:

兩個正數相加,其運算結果大於機器所能表示的最大正數,稱為正溢。

兩個負數相加,運算結果小於機器所能表示的最小負數,稱為負溢。

一旦溢位,溢位的部分將丟失,留下來的結果不正確。

溢位的檢測方法

(1)單符號法

當兩個運算元同號時,而其和的符號與運算元的符號不一致則就發出溢位,公式表示如下:

溢位=xsys(非ss)+(非xsys)ss

注意:

a、若是同號相減或異號相加,則運算結果不可能溢位;

b、若是同號相加或異號相減,則運算結果可能溢位。

(2)採用最高有效位的進製判斷

符號位產生的進製與最高有效位產生的進製情況不同,則溢位。

(3)採用變形補碼判斷(雙符號位)

運算方法和運算器 資料與文字的表示方法

一 資料格式 1 進製裝換 十進位制轉二進位制 整數部分除2取余至餘數為0,小數部分乘2取整至小數為0 2 數值資料表示格式 1 定點數表示方法 小數點固定 分為有符號數和無符號數,對於有符號數來說,最高位為符號位,0正1負 目前計算機中採用定點數表示純整數,定點運算又被稱為整數運算 2 浮點數的表...

運算器和控制器

請教一下此圖具體的詳細執行流程,才疏學淺沒有看懂哇。你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下markdown的基本語法知識。全新的介面設計,將會帶來全新的寫作體驗 在創作中心設定你喜愛的 高亮樣式,mark...

模擬簡單運算器

描述 模擬簡單運算器的工作。假設計算器只能進行加減乘除運算,運算數和結果都是整數,4種運算子的優先順序相同,按從左到右的順序計算。輸入 輸入在一行中給出乙個四則運算算式,沒有空格,且至少有乙個運算元。遇等號 說明輸入結束。輸出 在一行中輸出算式的運算結果,或者如果除法分母為0或有非法運算子,則輸出錯...