計算機中的二進制數(shù)據(jù)

這是一篇關(guān)于帶符號二進制數(shù)據(jù)在計算機中表示方法及加減運算的文章,是《計算機原理》這門課程有關(guān)內(nèi)容的總結(jié)性筆記廉沮。

01 機器數(shù)表示方式

1 機器數(shù)表示方式

  • 原碼
  • 補碼
  • 反碼

2 原碼表示法

又稱帶符號的絕對值表示村斟。

- 符號位:
“0”——正號
“1”——負號
- 有效數(shù)值部分:
二進制的絕對值

3 補碼表示法

正數(shù)的補碼是正數(shù)本身奶陈,負數(shù)的補碼是原負數(shù)加上模。

那什么是模呢蔚舀?內(nèi)容轉(zhuǎn)自

3.1模

是指一個計量系統(tǒng)的計數(shù)范圍饵沧。如時鐘等锨络,計算機也是一個計算器,它也是有一個計量范圍狼牺,即都存在一個“南鄱”。

  • 如時鐘的計量范圍是0~11是钥,模 = 12
  • 32位計算機的計量范圍是2^32掠归,模 = 2^32

模是計量器產(chǎn)生“溢出”的量,它的值在計量器上表示不出來悄泥,計量器上只能表示出模的余數(shù)虏冻,如12的余數(shù)有0,1,2,3,4,5,6,7,8,9,10,11。

知道了模码泞,我們再來看看補數(shù)

3.2 補數(shù)

假設(shè)當前時針指向11點兄旬,而準確時間是8點,調(diào)整時間可有以下兩種撥法:

  • 一種是倒撥3小時余寥,即:11-3=8
  • 另一種是順撥9小時:11+9=12+8=8

在以模為12的系統(tǒng)中领铐,加9和減3效果是一樣的,因此凡是減3運算宋舷,都可以用加9來代替绪撵。對“模”12而言祝蝠,9和3互為補數(shù)(二者相加等于模)音诈。所以我們可以得出一個結(jié)論,即在有模的計量系統(tǒng)中绎狭,減一個數(shù)等于加上它的補數(shù)细溅,從而實現(xiàn)將減法運算轉(zhuǎn)化為加法運算的目的。

3.3 補碼原理

計算機上的補碼就是算術(shù)里的補數(shù)儡嘶。
設(shè)我們有一個4位的計算機喇聊,則其計量范圍即模是2^4 = 16,所以其能夠表示的范圍是0~15蹦狂,現(xiàn)在以計算 5 - 3為例誓篱,我們知道在計算機中,加法器實現(xiàn)最簡單凯楔,所以很多運算最終都要轉(zhuǎn)為加法運算窜骄,因此5-3就要轉(zhuǎn)化為加法:

 # 按以上理論,減一個數(shù)等于加上它的補數(shù)摆屯,所以
 5 - 3
 # 等價于 
 5 + (16 - 3)   // 算術(shù)運算單元將減法轉(zhuǎn)化為加法
 # 用二進制表示則為:
 0101 + (10000 - 0011)
 # 等價于
 0101 + ((1 + 1111) - 0011)
 # 等價于
 0101 + (1 + (1111 - 0011))
 # 等價于
 0101 + (1 + 1100) // 括號內(nèi)是3(0011)的反碼+1邻遏,正是補碼的定義
 # 等價于
 0101 + 1101
 # 所以從這里可以得到
 -3 = 1101
 # 即 `-3` 在計算機中的二進制表示為 `1101`,正是“ -3 的正值 3(`0011`)的補碼(`1101`)”。
 # 最后一步 0101 + 1101 等于
 10010

3.4 補碼定義

補碼.PNG

這里需要解釋一下党远,為什么純小數(shù)的模值為2削解。從上面的解釋我們知道富弦,模就是計量器產(chǎn)生“溢出”的量沟娱,那么對于一個純小數(shù)(一位符號位)其表示范圍為0.0000……00~1.1111……11,溢出值是10.0000......00腕柜,它的模是2济似。

3.5 由原碼求補碼

  • 正數(shù):[X]補=[X]原
  • 負數(shù):符號位除外,各位取反盏缤,末位加1

4 反碼表示法

反碼只用于由原碼求補碼或由補碼求原碼的中間過渡

正數(shù)的反碼與原砰蠢、補碼相同
負數(shù)的反碼符號位1,數(shù)值位是將原碼的數(shù)值按位取反

02 加減法運算及溢出處理

1 計算機中常用補碼進行加減運算

這主要是因為相較原碼唉铜,補碼有以下特點:

  • 減法運算通過加法運算實現(xiàn)
  • 運算時符號位參與運算且結(jié)果符號自動產(chǎn)生

2 定點補碼加減法運算

基本規(guī)則

兩個補碼的和/查等于和/差補碼
即:[X]補±[Y]補 = [X±Y]補 mod 2或2^n

舉例

補碼-1.PNG
補碼-2.PNG

3 運算溢出與溢出處理

溢出

溢出:運算結(jié)果超出機器數(shù)所能表示的范圍

  • 一旦發(fā)生溢出台舱,運算結(jié)果就不正確
  • 必須將溢出錯位檢出
  • 溢出只可能發(fā)生在兩個同號數(shù)相加或兩個異號數(shù)相減時

4 溢出判斷

單符號位判斷法

  • 結(jié)果符號判斷法
    • 同號相加:結(jié)果符號與被加數(shù)相異則溢出
    • 異號相減:結(jié)果符號與被減數(shù)相異則溢出
  • 進位符號判斷法
    • 數(shù)值最高位進位值與符號位進位相異則溢出

雙符號位判別法:通過實現(xiàn)變形補碼實現(xiàn)

雙符號位參與運算,結(jié)果雙符號位相異則溢出
00:正數(shù)潭流,11:負數(shù)竞惋,01:正溢出,10:負溢出
第一位符號位為運算結(jié)果的真正符號位

溢出判斷-雙符號位.PNG
溢出判斷-雙符號位2.PNG
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末灰嫉,一起剝皮案震驚了整個濱河市拆宛,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌讼撒,老刑警劉巖浑厚,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異根盒,居然都是意外死亡钳幅,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門炎滞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來敢艰,“玉大人,你說我怎么就攤上這事厂榛「墙茫” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵击奶,是天一觀的道長辈双。 經(jīng)常有香客問我,道長柜砾,這世上最難降的妖魔是什么湃望? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上证芭,老公的妹妹穿的比我還像新娘瞳浦。我一直安慰自己,他們只是感情好废士,可當我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布叫潦。 她就那樣靜靜地躺著,像睡著了一般官硝。 火紅的嫁衣襯著肌膚如雪矗蕊。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天氢架,我揣著相機與錄音傻咖,去河邊找鬼。 笑死岖研,一個胖子當著我的面吹牛卿操,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播孙援,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼害淤,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了赃磨?” 一聲冷哼從身側(cè)響起筝家,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎邻辉,沒想到半個月后溪王,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡值骇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年莹菱,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吱瘩。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡道伟,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出使碾,到底是詐尸還是另有隱情蜜徽,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布票摇,位于F島的核電站拘鞋,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏矢门。R本人自食惡果不足惜盆色,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一灰蛙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧隔躲,春花似錦摩梧、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至响鹃,卻和暖如春驾霜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背买置。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留强霎,地道東北人忿项。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像城舞,于是被迫代替她去往敵國和親轩触。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容