課程
/后端開發(fā)
/Java
/二進(jìn)制基礎(chǔ)
改為有符號(hào),值就成了-49?是怎么計(jì)算的
2016-08-17
源自:二進(jìn)制基礎(chǔ) 5-1
正在回答
8143 二進(jìn)制表示為?1111111001111,
8143>>0*8中0*8的優(yōu)先級(jí)更高,所以這就是對(duì)8143右移0位,之后的與運(yùn)算,結(jié)果就是11001111,如果11001111作為無(wú)符號(hào)數(shù)就是207,如果作為有符號(hào)數(shù),11001111第一個(gè)1,就是表示為負(fù)號(hào),根據(jù)負(fù)數(shù)的表示方式 負(fù)數(shù)為絕對(duì)值的補(bǔ)碼,11001111轉(zhuǎn)換為原碼,先加1,得到11010000,然后取反00101111=49,所以就是-49
綜上,好像就是要么先求反后加1,要么先減一再求反。
第一種就是利用補(bǔ)碼的補(bǔ)碼就是原碼的原理。
第二種就是就利用求負(fù)數(shù)補(bǔ)碼的逆運(yùn)算。
數(shù)值是以補(bǔ)碼表示的。正數(shù)的補(bǔ)碼與該數(shù)的原碼(該數(shù)的二進(jìn)制形式)相同,求負(fù)數(shù)的補(bǔ)碼:是將該數(shù)的絕對(duì)值形式,然后按位取反再加1,得到該負(fù)數(shù)的補(bǔ)碼,轉(zhuǎn)十進(jìn)制數(shù),再取該十進(jìn)制數(shù)的相反數(shù),可以得到要求的。
8143 二進(jìn)制表示為?1111111001111 ?第一個(gè)1表示負(fù)號(hào)
| ?1111111001111 ?| =?1111111001111 ? ?//第一步,取該數(shù)的絕對(duì)值
~?1111111001111 ? = ?0000000110000 ? ?//第二步,按位取反得 ?0000000110000 ? ?
0000000110000 ? + 1 =?0000000110001 ? //第三步,取反后加1得0000000110001
0000000110001 ?有符號(hào)數(shù)的十進(jìn)制為49
第四步,取該十進(jìn)制數(shù)的相反數(shù) 得 ?-49
很明顯,大兄弟,你計(jì)算錯(cuò)了,你的結(jié)果是-47,但是還是很感謝你的提點(diǎn),正確計(jì)算是這樣的:
首先它是一個(gè)負(fù)數(shù),那么負(fù)數(shù)是以補(bǔ)碼形式存在的,而要得到一個(gè)負(fù)數(shù)的原碼,應(yīng)該先減1,然后取反
也就是 11001111-1 = 11001110啊,然后取反 得到00110001 ,然后取00110001的相反數(shù)得到-49
lululululuming3310524
舉報(bào)
二進(jìn)制是計(jì)算機(jī)唯一能識(shí)別的語(yǔ)言,是學(xué)習(xí)計(jì)算機(jī)技術(shù)必備的知識(shí)
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2016-08-17
8143 二進(jìn)制表示為?1111111001111,
8143>>0*8中0*8的優(yōu)先級(jí)更高,所以這就是對(duì)8143右移0位,之后的與運(yùn)算,結(jié)果就是11001111,如果11001111作為無(wú)符號(hào)數(shù)就是207,如果作為有符號(hào)數(shù),11001111第一個(gè)1,就是表示為負(fù)號(hào),根據(jù)負(fù)數(shù)的表示方式 負(fù)數(shù)為絕對(duì)值的補(bǔ)碼,11001111轉(zhuǎn)換為原碼,先加1,得到11010000,然后取反00101111=49,所以就是-49
2016-08-21
綜上,好像就是要么先求反后加1,要么先減一再求反。
第一種就是利用補(bǔ)碼的補(bǔ)碼就是原碼的原理。
第二種就是就利用求負(fù)數(shù)補(bǔ)碼的逆運(yùn)算。
2016-08-18
數(shù)值是以補(bǔ)碼表示的。正數(shù)的補(bǔ)碼與該數(shù)的原碼(該數(shù)的二進(jìn)制形式)相同,求負(fù)數(shù)的補(bǔ)碼:是將該數(shù)的絕對(duì)值形式,然后按位取反再加1,得到該負(fù)數(shù)的補(bǔ)碼,轉(zhuǎn)十進(jìn)制數(shù),再取該十進(jìn)制數(shù)的相反數(shù),可以得到要求的。
8143 二進(jìn)制表示為?1111111001111 ?第一個(gè)1表示負(fù)號(hào)
| ?1111111001111 ?| =?1111111001111 ? ?//第一步,取該數(shù)的絕對(duì)值
~?1111111001111 ? = ?0000000110000 ? ?//第二步,按位取反得 ?0000000110000 ? ?
0000000110000 ? + 1 =?0000000110001 ? //第三步,取反后加1得0000000110001
0000000110001 ?有符號(hào)數(shù)的十進(jìn)制為49
第四步,取該十進(jìn)制數(shù)的相反數(shù) 得 ?-49
2016-08-17
很明顯,大兄弟,你計(jì)算錯(cuò)了,你的結(jié)果是-47,但是還是很感謝你的提點(diǎn),正確計(jì)算是這樣的:
首先它是一個(gè)負(fù)數(shù),那么負(fù)數(shù)是以補(bǔ)碼形式存在的,而要得到一個(gè)負(fù)數(shù)的原碼,應(yīng)該先減1,然后取反
也就是 11001111-1 = 11001110啊,然后取反 得到00110001 ,然后取00110001的相反數(shù)得到-49