透徹理解補碼

說在前面的話:

對于補碼多數(shù)人都是大學里面深深印在腦子里的一句話"正數(shù)的補碼是其本身,負數(shù)的補碼是符號位不動,其余位按位取反加1",對于這句話當時并沒有想太多,理性對自己的感性說"就是這么規(guī)定的,不要多想了".后來看書又接觸到了補碼,不禁想想這句話和補碼的原始定義究竟如何貫通呢?

正文開始:

人產(chǎn)生了疑惑,覺著不通透,根本是感性和理性不能貫通了,前面關(guān)于求出負數(shù)補碼是一種感性理解,當遇到了真正數(shù)學對于補碼的定義,二者不能互相融會貫通,就不爽了,那么下面看一下補碼的數(shù)學定義.

補碼數(shù)學定義.png

對于數(shù)學定義,標示佩服,舉一個例子,就四位二進制數(shù)來說,從-8到7,都可以用最高位作為負權(quán)位來表示,也就是說在-8到7之間整數(shù)與此公式標示的二進制數(shù)是一一對應且唯一的.在此表示對數(shù)學的欽佩,想說明一個法則具有普遍的適應性,數(shù)學似乎是唯一的方式.

疑惑來了:

既然這個公式和上面的那句話都可以得出負數(shù)補碼,那么二者究竟是怎么貫通在一起的呢?理解了這個問題就打通了感性與理性,心中對補碼的疑惑也就不存在了,學知識還是盡量到達這個程度比較好.

分析:

通俗(感性認知)理解補碼:例如,-1的補碼怎么樣才能在算數(shù)的時候產(chǎn)生他的意義呢,-1+1必須等于0,那么-1的補碼才有意義,或者說得到補碼之后,-1+1的結(jié)果不能改變,那么看看-1的補碼1111,加上0001得到10000,只看四位,那么就是0了,顯然如此的完美,當然用上面的公式做出普遍意義的證明是比較容易的,大家可以試試.

理性理解補碼:

-1為例,先看按位取反加1的過程,1001,符號位不動,按位取反得到1110,加1,也就是1111,這是-1的補碼,分步來看,其實,先不看符號位,按位取反也就是0110,這相當于0111-0001 然后加1,0111+0001=1000,所以也就是1000-0001 = 0111,再加上符號位的1就得到了1111這個補碼,換句話說也就是-8+7 = -1,那么看看補碼數(shù)學定義的公式,也就是負權(quán)位的1與0111之和.
所以按位取反加1這種方法就是這個公式的規(guī)律性用法,為什么這么說呢?這里的取值范圍是-8到正7,那么以正8為"鏡子",也就是1000,想求-1的補碼,那么就1000-0001得到與1互補的正數(shù),然后加上負權(quán)位,自然就得到了-1,進一步通俗的理解就是,按位取反就是+1就是為了拿1000這個鏡子去映射出"能夠和負權(quán)位相加得到 當前負數(shù)絕對值所對應負數(shù)的 正數(shù),類似于互補角,或者說成:是為了得到此負數(shù)絕對值,在此區(qū)間的互補數(shù)",所以說按位取反+1這種方式就是在變相的用公式得出結(jié)果,本質(zhì)還是公式的定義.個人覺得這個辦法反而讓人產(chǎn)生疑惑,因為沒有給出原理,只是告訴了方法.

總結(jié):

應該說理解了按位取反+1就是公式的方便記憶和使用,本質(zhì)還是公式的唯一性且一一對應,那么也可以理解為啥正數(shù)的補碼是其本身了,因為正數(shù)最高權(quán)位是0,根本沒有變化,現(xiàn)在想想還是從數(shù)學的角度去認知類似事物比較好,沒什么可模糊疑惑糾纏的.

說在后面的話:

關(guān)鍵的地方在于按位取反+1就是得到了,此負數(shù)絕對值,在此區(qū)間的互補數(shù),然后加上負權(quán)位.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • ?轉(zhuǎn)自百度百科 ?計算機中的符號數(shù)有三種表示方法,即原碼、反碼和補碼。三種表示方法均有符號位和數(shù)值位兩部分,符號位...
    SunnyMore閱讀 2,024評論 0 1
  • 本篇文章講解了計算機的原碼, 反碼和補碼. 并且進行了深入探求了為何要使用反碼和補碼, 以及更進一步的論證了為何可...
    yang2yang閱讀 2,484評論 1 13
  • http://www.itdecent.cn/p/55a8195291db本篇文章講解了計算機的原碼, 反碼和補...
    PupilCHen閱讀 1,291評論 1 48
  • 一. 機器數(shù)和真值 在學習原碼, 反碼和補碼之前, 需要先了解機器數(shù)和真值的概念. 1、機器數(shù) 一個數(shù)在計算機中的...
    小小的coder閱讀 1,052評論 0 0
  • 今天把小米手機退回去。
    李雷川閱讀 209評論 0 0

友情鏈接更多精彩內(nèi)容