計算機中的資料分為:數值資料和非數值資料,數值資料有確定的值,有大小正負之分,能在數軸上找到它們的位置;非數值資料一般 用來表示符號或者文字,無值的含義。
編碼格式
正數的原碼,反碼和補碼都一樣。
負數的原碼:符號位為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或有非法運算子,則輸出錯...