說(shuō)在前面的話:
對(duì)于補(bǔ)碼多數(shù)人都是大學(xué)里面深深印在腦子里的一句話"正數(shù)的補(bǔ)碼是其本身,負(fù)數(shù)的補(bǔ)碼是符號(hào)位不動(dòng),其余位按位取反加1",對(duì)于這句話當(dāng)時(shí)并沒(méi)有想太多,理性對(duì)自己的感性說(shuō)"就是這么規(guī)定的,不要多想了".后來(lái)看書又接觸到了補(bǔ)碼,不禁想想這句話和補(bǔ)碼的原始定義究竟如何貫通呢?
正文開(kāi)始:
人產(chǎn)生了疑惑,覺(jué)著不通透,根本是感性和理性不能貫通了,前面關(guān)于求出負(fù)數(shù)補(bǔ)碼是一種感性理解,當(dāng)遇到了真正數(shù)學(xué)對(duì)于補(bǔ)碼的定義,二者不能互相融會(huì)貫通,就不爽了,那么下面看一下補(bǔ)碼的數(shù)學(xué)定義.

對(duì)于數(shù)學(xué)定義,標(biāo)示佩服,舉一個(gè)例子,就四位二進(jìn)制數(shù)來(lái)說(shuō),從-8到7,都可以用最高位作為負(fù)權(quán)位來(lái)表示,也就是說(shuō)在-8到7之間整數(shù)與此公式標(biāo)示的二進(jìn)制數(shù)是一一對(duì)應(yīng)且唯一的.在此表示對(duì)數(shù)學(xué)的欽佩,想說(shuō)明一個(gè)法則具有普遍的適應(yīng)性,數(shù)學(xué)似乎是唯一的方式.
疑惑來(lái)了:
既然這個(gè)公式和上面的那句話都可以得出負(fù)數(shù)補(bǔ)碼,那么二者究竟是怎么貫通在一起的呢?理解了這個(gè)問(wèn)題就打通了感性與理性,心中對(duì)補(bǔ)碼的疑惑也就不存在了,學(xué)知識(shí)還是盡量到達(dá)這個(gè)程度比較好.
分析:
通俗(感性認(rèn)知)理解補(bǔ)碼:例如,-1的補(bǔ)碼怎么樣才能在算數(shù)的時(shí)候產(chǎn)生他的意義呢,-1+1必須等于0,那么-1的補(bǔ)碼才有意義,或者說(shuō)得到補(bǔ)碼之后,-1+1的結(jié)果不能改變,那么看看-1的補(bǔ)碼1111,加上0001得到10000,只看四位,那么就是0了,顯然如此的完美,當(dāng)然用上面的公式做出普遍意義的證明是比較容易的,大家可以試試.
理性理解補(bǔ)碼:
-1為例,先看按位取反加1的過(guò)程,1001,符號(hào)位不動(dòng),按位取反得到1110,加1,也就是1111,這是-1的補(bǔ)碼,分步來(lái)看,其實(shí),先不看符號(hào)位,按位取反也就是0110,這相當(dāng)于0111-0001 然后加1,0111+0001=1000,所以也就是1000-0001 = 0111,再加上符號(hào)位的1就得到了1111這個(gè)補(bǔ)碼,換句話說(shuō)也就是-8+7 = -1,那么看看補(bǔ)碼數(shù)學(xué)定義的公式,也就是負(fù)權(quán)位的1與0111之和.
所以按位取反加1這種方法就是這個(gè)公式的規(guī)律性用法,為什么這么說(shuō)呢?這里的取值范圍是-8到正7,那么以正8為"鏡子",也就是1000,想求-1的補(bǔ)碼,那么就1000-0001得到與1互補(bǔ)的正數(shù),然后加上負(fù)權(quán)位,自然就得到了-1,進(jìn)一步通俗的理解就是,按位取反就是+1就是為了拿1000這個(gè)鏡子去映射出"能夠和負(fù)權(quán)位相加得到 當(dāng)前負(fù)數(shù)絕對(duì)值所對(duì)應(yīng)負(fù)數(shù)的 正數(shù),類似于互補(bǔ)角,或者說(shuō)成:是為了得到此負(fù)數(shù)絕對(duì)值,在此區(qū)間的互補(bǔ)數(shù)",所以說(shuō)按位取反+1這種方式就是在變相的用公式得出結(jié)果,本質(zhì)還是公式的定義.個(gè)人覺(jué)得這個(gè)辦法反而讓人產(chǎn)生疑惑,因?yàn)闆](méi)有給出原理,只是告訴了方法.
總結(jié):
應(yīng)該說(shuō)理解了按位取反+1就是公式的方便記憶和使用,本質(zhì)還是公式的唯一性且一一對(duì)應(yīng),那么也可以理解為啥正數(shù)的補(bǔ)碼是其本身了,因?yàn)檎龜?shù)最高權(quán)位是0,根本沒(méi)有變化,現(xiàn)在想想還是從數(shù)學(xué)的角度去認(rèn)知類似事物比較好,沒(méi)什么可模糊疑惑糾纏的.
說(shuō)在后面的話:
關(guān)鍵的地方在于按位取反+1就是得到了,此負(fù)數(shù)絕對(duì)值,在此區(qū)間的互補(bǔ)數(shù),然后加上負(fù)權(quán)位.