目錄
1. 符號拓展
2. 加法運算
3. 溢位
補碼表示負數的符號擴充套件法:原有形式符號位移動到新形式的符號位上,新表示形式的所有附加為都用1(對於整數)或0(對於小數) 進行填充。 可以利用符號擴充套件後 空位在左邊(對於整數) 以及空位在右邊(對於小數)新增原理進行輔助理解。或者直接 先原碼擴充位數 然後轉為 補碼 需要取反加1 來理解。
原碼表示負數的符號擴充套件非常方便,反碼和補碼的符號擴充套件都是在原碼符號擴充套件上分析得來的,所以盡量先處理原碼形式的符號拓展,拓展好了之後再進行其它的求反碼和補碼操作!
本質:只是將二進位制數的位數擴充套件為便於處理的位數,數的真值在這一過程並不改變。
對於機器來說:加法和減法實際上都是加法,只不過要加上乙個輔助電路,輔助電路用來求減數相反數的補碼。
溢位的原因:機器字長有限! 所能表示的資料是有範圍的!
方法一:不需要增加多餘的位,直接根據兩個直接相加數的符號進行判斷。即 b-c 看的不是 c 而是 -c。 【b-c=b+(-c)】
+ 號兩邊分別表示兩種溢位情況: 1 1 0 和 0 0 1
方法二:根據符號位和資料位的進製情況判斷。
雙符號位情況下的右移操作:
右移一位:右移之後,由於低位符號位參與了移位,所以有空位,根據負數補碼的添補規則,將空位填1。
左移一位:數值位的0移到了低位符號位上,空出的位補上0。
左移兩位:移動規律相同,但是發生了正溢位!(這個數值沒辦法用字長為8位的二進位制數表示)
注意:採用雙符號位進行運算的時候,實際儲存是只儲存乙個符號位的。因為存在儲存器中的數字先保證是乙個正常的數字,不是溢位的情況,既然是正常數字,則兩個符號位是一樣的,所以只儲存一位即可;
在需要運算的時候,是會把符號位的1(假設符號位為1)並行地送到用於儲存符號位的兩個單元中;
這個時候就實現了雙符號位的運算和儲存。
C語言深度擴充套件 2 符號的技巧(上)
初探注釋規則 由程式及結果分析發現 y x p是什麼意思?作者本意 把 x 除以 p 的結果賦值給 y 編譯器 將 作為一段注釋開始,把 後的內容都當成注釋內容,直到 出現為止 在編譯器看來,注釋和其它程式元素都是平等的,可以在 與 之間新增空格,所以,作為程式設計師也不能看輕注釋。注釋注意 注釋應...
1 組合數學初步 排列與組合之加法原理 乘法原理
去年的csp沒有考過,經過總結發現,分數很多失在了排列組合上,如果對一道我就能進入複賽。經受慘痛教訓,痛心疾首,決定重整旗鼓再出發,第一步就是排列組合!我新開的這個專欄,幾乎90 的文字來自 資訊學奧賽一本通 初賽篇 很少的部分為我的註解。借助csdn作為筆記罷了。在此做引,意為始勵志。2021 3...
運維組納新活動記錄 Episode2
小夥伴們喲,你們好啊,又是我。首先,恭喜大家通過了第一輪測試,很抱歉拖到現在才給大家發布新任務。本週需要同學們完成以下兩個任務,請在8月3日中午之前完成。需要大家將過程發布成部落格,並釘釘私聊發給我部落格位址。任務 上週我們使用virtual box軟體新建了乙個centos系統的虛擬機器,但安裝的...