補(bǔ)碼的簡(jiǎn)單理解
?在計(jì)算機(jī)里面,數(shù)據(jù)的加減是通過(guò)補(bǔ)碼的形式來(lái)運(yùn)算的
這里我先不用二進(jìn)制的方式講解,而是用我們常見(jiàn)的十進(jìn)制來(lái)理解補(bǔ)碼:
假如現(xiàn)在有一個(gè)數(shù)字6,想要減去2, 正常做法是:6-2=4
現(xiàn)在我們來(lái)還一種思路,6減去2可以理解成什么?
現(xiàn)在假設(shè)有一個(gè)帶刻度的圓盤(pán)A,A的12點(diǎn)位置寫(xiě)上“9”,其他位置均勻地寫(xiě)上1,2,3...
在6的位置上方一個(gè)小石子。
那么6減去2可以理解成:小石子往后退兩位,放到“4”的位置
那如果我偏要前進(jìn)呢,前進(jìn)多少個(gè)可以輪回到“4”的位置呢?
想象一下就知道,向前走7位也能到“4”的位置,這個(gè)7就是2在這個(gè)規(guī)則下的補(bǔ)碼
于是6-2可以用6+7來(lái)表示,好神奇哇?
也就是,4等價(jià)13,5等價(jià)14,6等價(jià)15,有規(guī)律了把
4就是13的個(gè)位數(shù)+1
5就是14的個(gè)位數(shù)+1...
剩下的就自己理解咯;;;
對(duì)應(yīng)于二進(jìn)制也是一樣的原理啦
一個(gè)負(fù)數(shù)的補(bǔ)碼就是這個(gè)數(shù)的絕對(duì)值的二進(jìn)制的每個(gè)位取反加一
其實(shí)取反后本質(zhì)上就是真正意義上的補(bǔ)碼(我自己的理解),因?yàn)槿》春蟮亩M(jìn)制和取反前的 相加剛好等于0, 不就很“補(bǔ)”了嗎,加一是為了扔調(diào)最前面的進(jìn)位,就像前面的圓盤(pán),不要了十位數(shù)