怎么求一個(gè)負(fù)數(shù)的原碼和補(bǔ)碼
在c語(yǔ)言中,負(fù)數(shù)的源碼是計(jì)算出來(lái)的,即先視作一個(gè)正數(shù),將這個(gè)十進(jìn)制的正數(shù)轉(zhuǎn)換為二進(jìn)制的數(shù),在最高位補(bǔ)一個(gè)1,其余空位補(bǔ)0,得到源碼。
一般來(lái)說(shuō)正數(shù)的補(bǔ)碼是源碼本身,負(fù)數(shù)的補(bǔ)碼是他源碼除去符號(hào)位以外其他各位取反(1變0,0變1)后加1。負(fù)數(shù)的補(bǔ)碼怎么求的
負(fù)數(shù)的補(bǔ)碼可以通過(guò)以下步驟求得:
1、將負(fù)數(shù)轉(zhuǎn)換成對(duì)應(yīng)的二進(jìn)制表示形式。
2、對(duì)二進(jìn)制數(shù)取反(0變成1,1變成0)。
3、將取反后的二進(jìn)制數(shù)加1。
例如,要求-7的補(bǔ)碼,先將-7轉(zhuǎn)換成二進(jìn)制表示形式:
-7=1001(最高位為符號(hào)位,表示負(fù)數(shù))
對(duì)二進(jìn)制數(shù)取反:
1001->0110
然后將取反后的二進(jìn)制數(shù)加1:
0110+1=0111
因此,-7的補(bǔ)碼為0111。
補(bǔ)碼在計(jì)算機(jī)中被廣泛使用,特別是在進(jìn)行加法和減法運(yùn)算時(shí)。
-117的補(bǔ)碼
117的原碼:11110101第一位代表符號(hào)位1表示負(fù)
負(fù)數(shù)補(bǔ)碼是在原碼的基礎(chǔ)上除符號(hào)位其余變反加1所以為10001011
反碼在原碼的基礎(chǔ)上除符號(hào)位不變外,其余的取反所以是10001010
2原碼:10001011反碼:11110100補(bǔ)碼:11110101
原碼、反碼、補(bǔ)碼之間的轉(zhuǎn)換和簡(jiǎn)單運(yùn)算
1、原碼轉(zhuǎn)換為反碼:符號(hào)位不變,數(shù)值位分別“按位取反”
2、反碼轉(zhuǎn)換為原碼也是一樣:符號(hào)位不變,數(shù)值位分別“按位取反”
3、原碼轉(zhuǎn)換為補(bǔ)碼:符號(hào)位不變,數(shù)值位按位取反,末位再加1
4、補(bǔ)碼轉(zhuǎn)換為原碼:符號(hào)位不變,數(shù)值位按位取反,末位再加1。即補(bǔ)碼的補(bǔ)碼等于原碼
5、求補(bǔ)(變補(bǔ)),即已知[X]補(bǔ),求[-X]補(bǔ)。符號(hào)位和數(shù)值位都取反,末位再加1
總結(jié)一下:
正整數(shù)的原碼、反碼和補(bǔ)碼都一樣;負(fù)數(shù)部分:原碼和反碼的相互轉(zhuǎn)換:符號(hào)位不變,數(shù)值位按位取反原碼和補(bǔ)碼的相互轉(zhuǎn)換:符號(hào)位不變,數(shù)值位按位取反,末位再加1已知補(bǔ)碼,求原碼的負(fù)數(shù)的補(bǔ)碼:符號(hào)位和數(shù)值位都取反,末位再加1
小數(shù)和負(fù)數(shù)的原碼反碼和補(bǔ)碼怎么表示
先轉(zhuǎn)換成原碼,小數(shù)點(diǎn)左邊為符號(hào)位(正數(shù)——0;負(fù)數(shù)——1),然后轉(zhuǎn)換成反碼(即每一位取反),最后再加1.eg:x=-0.11101轉(zhuǎn)換成原碼x=1.11101;然后轉(zhuǎn)換反碼x=1.00010;最后轉(zhuǎn)換成補(bǔ)碼(即+1)x=1.00011.PS:符號(hào)位在轉(zhuǎn)換反碼的時(shí)候不需要取反。
已知補(bǔ)碼求原碼有兩種方法嗎
已知一個(gè)數(shù)的補(bǔ)碼,求原碼的操作分兩種情況:
(1)如果補(bǔ)碼的符號(hào)位為“0”,表示是一個(gè)正數(shù),所以補(bǔ)碼就是該數(shù)的原碼。
(2)如果補(bǔ)碼的符號(hào)位為“1”,表示是一個(gè)負(fù)數(shù),源求原碼的操作可以是:符號(hào)位為1,其余各位取反,然后再整個(gè)數(shù)加1。
已知一個(gè)補(bǔ)碼為11111001,則原碼是10000111(-7):因?yàn)榉?hào)位為“1”,表示是一個(gè)負(fù)數(shù),所以該位不變,仍為“1”;其余7位1111001取反后為0000110;再加1,所以是10000111。