當(dāng)前位置: 博客首頁(yè) >> 編程基礎(chǔ) >> 閱讀正文

從取反操作學(xué)習(xí)數(shù)值的原碼反碼與補(bǔ)碼

作者: 鄭曉 分類: 編程基礎(chǔ) 發(fā)布于: 2014-05-05 22:12 瀏覽:6,627 評(píng)論(5)


在程序語(yǔ)言中,取反操作一般用~表示。比如在js中,我們對(duì)5這個(gè)整數(shù)做取反操作,表示為:
~5
結(jié)果是:
-6

在網(wǎng)上搜了一些教程了解到,這些數(shù)據(jù)在計(jì)算機(jī)中是以補(bǔ)碼的形式存在的。

正整數(shù)的補(bǔ)碼=反碼=原碼, 三碼相同。
這些碼就是咱們平時(shí)說(shuō)的二進(jìn)制表示法。原碼就是直接將對(duì)應(yīng)十進(jìn)制轉(zhuǎn)為二進(jìn)制后的編碼,如這里5的原碼是
0000 0101
反碼是:
0000 0101
補(bǔ)碼是:
0000 0101

取反操作是把二進(jìn)制所有位數(shù)進(jìn)行取反,所以這里對(duì)5取反后的二進(jìn)制變成了:
1111 1010
我們知道二進(jìn)制最高位(即最左位)是數(shù)值的符號(hào)位,這里為1,說(shuō)明結(jié)果是負(fù)數(shù)。
負(fù)數(shù)的原碼、反碼與補(bǔ)碼的關(guān)系為:
原碼–>符號(hào)位不變,其它所有位取反–>反碼—>+1—>補(bǔ)碼
所以這里先對(duì)我們得到的二進(jìn)制減一,得到反碼,再符號(hào)位不變,其它位取反,得到最終結(jié)果:
上一步我們操作得到的結(jié)果(補(bǔ)碼)為:1111 1010
減一:1111 1001 (反碼)
符號(hào)位不變,其它位取反:1000 0110 (原碼)
現(xiàn)在這個(gè)結(jié)果就是我們對(duì)5取反得到的最終結(jié)果的二進(jìn)制表示,轉(zhuǎn)為十進(jìn)制為-6,即:
~5 = -6

? ? ? ?

本文采用知識(shí)共享署名-非商業(yè)性使用 3.0 中國(guó)大陸許可協(xié)議進(jìn)行許可,轉(zhuǎn)載時(shí)請(qǐng)注明出處及相應(yīng)鏈接。

本文永久鏈接: http://yjfs.org.cn/cong-qu-fan-yuan-ma-fan-ma-yu-bu-ma.html

從取反操作學(xué)習(xí)數(shù)值的原碼反碼與補(bǔ)碼:目前有5 條留言

用戶評(píng)論頭像 沫小熙iBlog發(fā)表于 2014年05月22日 00:52[回復(fù)]

高深莫測(cè)

用戶評(píng)論頭像 shaoxieqian發(fā)表于 2014年05月21日 14:21[回復(fù)]

大哥,評(píng)論發(fā)不了的哦

    用戶評(píng)論頭像 鄭曉發(fā)表于 2014年05月21日 17:48[回復(fù)]

    你的評(píng)論被自動(dòng)放入垃圾評(píng)論里了

用戶評(píng)論頭像 shaoxieqian發(fā)表于 2014年05月21日 14:20[回復(fù)]

好像很高深的樣子哦 ??

用戶評(píng)論頭像 沫小熙iBlog發(fā)表于 2014年05月13日 01:54[回復(fù)]

過(guò)來(lái)頂頂,重新開(kāi)站,望大家支持!

發(fā)表評(píng)論

change vcode