java入門(mén)編程 由補(bǔ)碼求原碼如何求?
由補(bǔ)碼求原碼如何求?1. 二進(jìn)制具有易于模擬電路或NAND的優(yōu)點(diǎn),易于計(jì)算機(jī)設(shè)計(jì),抗干擾能力強(qiáng)(這可能是我當(dāng)時(shí)在我最初的船員手冊(cè)中所說(shuō)的)-所以原始代碼誕生了;2。原來(lái)的代碼不能解決正負(fù)之和等于0的
由補(bǔ)碼求原碼如何求?
1. 二進(jìn)制具有易于模擬電路或NAND的優(yōu)點(diǎn),易于計(jì)算機(jī)設(shè)計(jì),抗干擾能力強(qiáng)(這可能是我當(dāng)時(shí)在我最初的船員手冊(cè)中所說(shuō)的)-所以原始代碼誕生了;
2。原來(lái)的代碼不能解決正負(fù)之和等于0的問(wèn)題(你可以找到一個(gè)正負(fù)樹(shù)原來(lái)的代碼自己加)-所以引入了逆代碼;
3。原始碼和逆碼都有兩個(gè)零(正零和負(fù)零),為了解決這個(gè)問(wèn)題,我們引入了補(bǔ)碼(補(bǔ)碼的0是唯一的)
用來(lái)找出47的8位原始碼。當(dāng)然,你也可以直接把它拼起來(lái)。我的計(jì)算思想便于您以后編寫(xiě)程序時(shí)設(shè)計(jì)算法。
最高位為符號(hào)位:
47的16位原始碼:0000 0000 0010 1111;-47的16位原始碼:1000 0000 0010 1111
除符號(hào)位外,其余位均為反位:
47的16位反碼:0000 0000 0010 1111;-47的16位反碼:1111 1111 11001 0000
47的16位補(bǔ)碼:0000 0000 0010 1111;-47的16位補(bǔ)碼:1111111111100001
計(jì)算方法如下:
其余可以自己計(jì)算。如果你不明白,你最好自己計(jì)算其他的。
補(bǔ)碼1000怎么求原碼,原碼1000怎么求補(bǔ)碼?
二進(jìn)制數(shù)1000是負(fù)數(shù)(因?yàn)榈谝晃皇?)。當(dāng)?shù)谝晃徊蛔儠r(shí),負(fù)數(shù)的補(bǔ)碼將其他位反轉(zhuǎn)(即1變?yōu)?,0變?yōu)?),然后它是1111;然后它與1相加(即1111 0001),它是10000。
1000的補(bǔ)碼是10000。
補(bǔ)碼1000的原始代碼是10000。
對(duì)于二進(jìn)制系統(tǒng),減去一然后取反的結(jié)果與減去一然后加一的結(jié)果相同,因此兩者都是取反然后加一。
怎么求補(bǔ)碼的原碼?
補(bǔ)碼的補(bǔ)碼與原碼相等(即補(bǔ)碼視為原碼,原碼通過(guò)將原碼轉(zhuǎn)換為補(bǔ)碼的另一操作獲得)。例如:-4的8位原始碼:1000 0100反碼:1111 1011補(bǔ)碼:1111 1100將當(dāng)前的1111 1100作為原始碼,然后請(qǐng)求補(bǔ)碼:反碼:1000 0111補(bǔ)碼:1000 0100-結(jié)果就是所需的原始碼。
為什么補(bǔ)碼的補(bǔ)碼是原碼?
給定一個(gè)數(shù)字的補(bǔ)碼,有兩種操作可以找到原始代碼:(1)如果補(bǔ)碼的符號(hào)位為“0”,則表示它是正數(shù),因此補(bǔ)碼是該數(shù)字的原始代碼。(2) 如果補(bǔ)碼的符號(hào)位是“1”,則表示它是一個(gè)負(fù)數(shù)。查找原始代碼的操作可以是:符號(hào)位為1,其他位取反,然后整數(shù)加1。例如,如果已知補(bǔ)碼11111 001,則原始代碼為10000111(-7):因?yàn)榉?hào)位是“1”,這意味著它是一個(gè)負(fù)數(shù),所以該位保持不變,仍然是“1”;其他7位1111001在求反后是0000111;如果加1,則是10000111。擴(kuò)展數(shù)據(jù):摘要:如果一個(gè)數(shù)字的補(bǔ)碼已知,那么查找原始代碼的操作實(shí)際上是再次查找補(bǔ)碼。補(bǔ)碼轉(zhuǎn)換成原始碼:符號(hào)位保持不變,數(shù)值位逐位反轉(zhuǎn),最后一位加1。即補(bǔ)碼的補(bǔ)碼等于原碼。正整數(shù)的原碼、逆碼和補(bǔ)碼是一樣的,即當(dāng)你看到符號(hào)位(第一位)是0時(shí),你可以根據(jù)它來(lái)寫(xiě)另外兩個(gè)碼。所以如果我們知道一個(gè)正數(shù)的補(bǔ)碼,找到它的原始碼,這兩個(gè)數(shù)是一樣的。