C++ 原码、反码、补码理解笔记
電腦是以補(bǔ)碼形式來(lái)表示數(shù)字的。正數(shù):原碼,反碼,補(bǔ)碼都相同 ;負(fù)數(shù):反碼為除符號(hào)位外按位取反,補(bǔ)碼為反碼+1。
- 如-1這個(gè)負(fù)數(shù):
-1的補(bǔ)碼:1111 1111
-1的反碼:1111 1110
-1的原碼:1000 0001
比如我們平時(shí)看到5000的無(wú)符號(hào)短整數(shù)(16位整數(shù)),其實(shí)是原碼(位模式)轉(zhuǎn)換成反碼再轉(zhuǎn)換成補(bǔ)碼后顯示的結(jié)果,所以如果要知道原碼是多少,需要反向轉(zhuǎn)換一下,即從補(bǔ)碼轉(zhuǎn)成反碼再轉(zhuǎn)成原碼。
1) 補(bǔ)碼:無(wú)符號(hào)短整數(shù) 50,000在計(jì)算機(jī)中存儲(chǔ)時(shí)是補(bǔ)碼11000011 01010000
2) 反碼:減1變成反碼,1100001101010000 - 1 = 1100001101001111
3)原碼:取反,變成原碼,not 1100001101001111 = 0011110010110000,即15536,再因?yàn)檠a(bǔ)碼最高位是1,所以是-15536
但是5000的二進(jìn)制是0001001110001000,最高位是0,正數(shù),所以補(bǔ)碼、反碼、原碼都一樣,位模式也是5000
附上一個(gè)簡(jiǎn)單好用的進(jìn)制轉(zhuǎn)換器鏈接link
總結(jié)
以上是生活随笔為你收集整理的C++ 原码、反码、补码理解笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 决策树——学习笔记(一)
- 下一篇: Opencv+Windows+Codeb