第三章預習筆記
一、高階語言和機器指令中的運算
1,按位運算:符號|按位or運算;符號&按位and運算;符號~表示按位not運算;符號^按位xor運算。
實現掩碼操作:通過與給定的乙個位模式進行按位與,可以提取所需要的位,對這些位進行「置1」 「清0」等。
2,符號||按位or運算;符號&&表示and運算;符號!表示not運算。
3,移位運算輯移位和算術移位。
邏輯移位:不考慮符號位,把高(低)位移出,低(高)補0.
原碼的移位:原碼算術移位:左移丟1,運算會出錯,右移丟1,會影響精度
補碼的移位:正數中,原碼,補碼,反碼左右移都補0,負數中,原碼左右移補0,補碼左移補0、右移補1,反碼左右移補1。
4,位擴充套件和位截斷運算
兩種位擴充套件方式:0擴充套件和符號擴充套件。0擴充套件用於無符號數,符號擴充套件用於補碼表示的帶符號整數
二、基本運算部件
1,序列進製加法器
序列進方式:n位加法器,x與y逐位相加,位間進製序列傳送。
2,並行進製加法器
計算機內部大多採用兩級或多級先行進製加法器。
3,帶標誌加法器
三、定點數運算
1,補碼加減法
運算表示式,判斷是否溢位
2,原碼加減運算
比較兩個運算元的符號,對加法實行「同號求和,異號求差」,對減法實行「異號求和,同號求差
求和時,數值位相加,若最高位產生進製則結果溢位
求差時,被加數數值位加上加數數值位的補碼
3,移碼加減運算
移碼的和、差等於和、差的補碼。
4,原碼乘法運算
原碼一位乘法
(1)確定乘積的符號位。由兩個乘數的符號異或得到。
(2)計算乘積的數值位,乘積的數值部分分為兩個乘數的數值部分之積。
原碼二位乘法
原碼兩位乘是用兩位來決定新的部分積的形成,形成4種狀態
5,補碼乘法運算
補碼一位乘法
(1)將符號位和數值位合在一起參與運算,直接得出用補碼表示的乘積,且正數和負數同等對待稱為布斯乘法
(2)符號位參與運算,運算的數均以補碼表示,被乘數 x 取雙符號位,乘數 y 取單符號位
(3)運算規則
補碼二位乘法
6,快速乘法器
7,原碼除法運算
先進行判斷:除數是否為0,商是否為0,是否溢位或為不確定的值nan
手算除法基本要點
與乘法運算一樣,要將符號位和數值位分開來處理。商的符號為相除兩數符號的異或值,商的數值為兩數絕對值之商。
單精度除法,其商的位數一定不會超過n位,因此不會發生溢位;雙精度除法,商的位數可能多於n位,因此,可能發生溢位
恢復餘數除法
不恢復餘數除法
(1)「正、1、減、負、0、加」:若中間餘數為正數,則上商為1,下次做減法;若中間餘數為負數,則上商為0,下次做加法
8,補碼除法運算
補碼恢復餘數除法
採用「夠減則上商為1,不夠減則上商為0」的上商方式,因此,最後若商為負值,則需要「各位取反,末位加1」來得到真正的商
補碼不恢復餘數除法
被除數與除數同號,被除數減去除數;被除數與除數異號,被除數加上除數。餘數與除數同號,商上1,餘數左移一位減去除數;餘數與除數異號,商上0,餘數左移一位加上除數。(注意:餘數左移加上或減去除數後就得到了新餘數。直到商的位數滿足要求為止。
四.浮點數運算
1,浮點數加減運算
對階、尾數運算、規格化、捨入處理、溢位判斷
2,浮點數乘除運算
先進行判0處理,規格化操作和溢位判斷
(1)乘法運算:尾數相乘,指數相加;尾數規格化;尾數捨入處理;溢位判斷浮點數除法運算
(2)除法運算:尾數相除,階相減;尾數規格化;尾數捨入處理;溢位判斷
c primer 筆記,第三章
初始化string物件的6種方式 string s1 預設空串 sting s2 s1 string s2 s1 string s3 value 直接初始化 string s3 value 拷貝初始化 string s4 n,c 由連續n個字元c組成的串在讀寫string物件時,string物件會自...
C Primer Plus 第三章筆記
1.變數名命名需注意 以兩個下劃線或下劃線和大寫字母打頭的名稱被保留給實現使用 以乙個下劃線開頭的名稱被保留給實現,用作全域性識別符號。2.對型別名使用 sizeof 運算子時,應將名稱放在括號中,但對變數名使用時括號可選。3.標頭檔案 climits 定義了符號常量來表示型別的限制。4.若不對函式...
C Primer Plus 第三章筆記
他們都是無符號的 char16 t 用 u表示 char32 t用u表示 bool 非0都是true 盡量用const而不是 define來作為常量標註 1來可以限定型別,2來可以限定作用域範圍 float型別的儲存方式 計算機會分別儲存兩部分 1部分儲存的是值,另一部分是儲存對值得縮小放大倍數 1...