熱門(mén): 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂(lè)園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2024-9-19 22:31
正文摘要:大沙把一些基礎(chǔ)的知識(shí)說(shuō)清楚,本文介紹二進(jìn)制補(bǔ)碼及與原碼的轉(zhuǎn)換方法。 先說(shuō)原碼,原碼是一種計(jì)算機(jī)中對(duì)數(shù)字的二進(jìn)制定點(diǎn)表示方法。在原碼表示法中,數(shù)值前面增加了一位符號(hào)位,最高位為符號(hào)位,0表 ... |
通俗的說(shuō)一下吧,如果是二位十進(jìn)制,你可以表示0-99之間的整數(shù),如果想表示負(fù)數(shù),那只能表示一半的整數(shù)和一半的負(fù)數(shù)了。差個(gè)負(fù)數(shù)的一對(duì)數(shù),互補(bǔ),意思是它們加起來(lái)為100,剛好溢出向第三位進(jìn)位。 那么如果是一個(gè)字節(jié),那么它們相加為256,如果二個(gè)字節(jié)相加為65536 然后我們簡(jiǎn)單用一字節(jié)來(lái)討論,9用二進(jìn)制來(lái)表示為0000 1001,把它各位取反則為1111 0110,這樣加起來(lái)就是各位都是1,還得加上1才能向上進(jìn)位,然后一字節(jié)的八位都是0,所以各位取反后還得加1后才是負(fù)數(shù)的反碼。 |
對(duì)的,謝謝學(xué)習(xí)到了。![]() |
原碼10001001---反面碼11110110----補(bǔ)碼11110111 應(yīng)該是這個(gè)過(guò)程吧 |
-9的8位二進(jìn)制補(bǔ)碼是11110111。 補(bǔ)碼的計(jì)算過(guò)程 原碼:正數(shù)的原碼就是其本身,負(fù)數(shù)的原碼是其絕對(duì)值的二進(jìn)制表示。例如,9的原碼是00001001,-9的原碼是10001001。 反碼:正數(shù)的反碼與原碼相同,負(fù)數(shù)的反碼是其原碼的每一位取反(0變1,1變0),符號(hào)位除外。例如,-9的反碼是11110100。 補(bǔ)碼:補(bǔ)碼是反碼加1。例如,-9的補(bǔ)碼是11110100 + 1 = 11110101,但這是8位二進(jìn)制表示的錯(cuò)誤表示,實(shí)際正確的補(bǔ)碼是11110111。 通過(guò)上述步驟,我們可以得到-9的8位二進(jìn)制補(bǔ)碼為11110111。 |
Powered by 單片機(jī)教程網(wǎng)