欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

負(fù)數(shù)與二進(jìn)制換轉(zhuǎn)方法

 更新時(shí)間:2013年02月19日 16:55:04   作者:  
先談?wù)勈裁聪肫疝D(zhuǎn)載一篇這樣的文章。由于寫java已經(jīng)有一段時(shí)間了,在使用api上基本上沒有障礙,但是對有些基礎(chǔ)知識(shí)老是容易忘記,如二進(jìn)制和十進(jìn)制的一些轉(zhuǎn)換問題。在此記錄一下,再次復(fù)習(xí)一下

1、十進(jìn)制負(fù)數(shù)轉(zhuǎn)二進(jìn)制


假設(shè)有一個(gè) int 類型的數(shù),值為5,那么,我們知道它在計(jì)算機(jī)中表示為: (因?yàn)閖ava中int 是4個(gè)字節(jié),所以高位需要補(bǔ)0,占?jí)?2位)
00000000 00000000 00000000 00000101
現(xiàn)在想知道,-5在計(jì)算機(jī)中如何表示?
在計(jì)算機(jī)中,負(fù)數(shù)以原碼的補(bǔ)碼形式表達(dá)。
什么叫補(bǔ)碼呢?這得從原碼,反碼說起。

原碼:一個(gè)正數(shù),按照絕對值大小轉(zhuǎn)換成的二進(jìn)制數(shù);一個(gè)負(fù)數(shù)按照絕對值大小轉(zhuǎn)換成的二進(jìn)制數(shù),然后最高位補(bǔ)1,稱為原碼。
比如 00000000 00000000 00000000 00000101 是 5的 原碼;10000000 00000000 00000000 00000101 是 -5的 原碼。  

反碼:正數(shù)的反碼與原碼相同,負(fù)數(shù)的反碼為對該數(shù)的原碼除符號(hào)位外各位取反。
取反操作指:原為1,得0;原為0,得1。(1變0; 0變1)
比如:正數(shù)00000000 00000000 00000000 00000101 的反碼還是 00000000 00000000 00000000 00000101 ;
負(fù)數(shù)10000000 00000000 00000000 00000101每一位取反(除符號(hào)位),得11111111 11111111 11111111 11111010。
稱:10000000 00000000 00000000 00000101 和 11111111 11111111 11111111 11111010互為反碼。  

補(bǔ)碼:正數(shù)的補(bǔ)碼與原碼相同,負(fù)數(shù)的補(bǔ)碼為對該數(shù)的原碼除符號(hào)位外各位取反,然后在最后一位加1.
比如:10000000 00000000 00000000 00000101 的反碼是:11111111 11111111 11111111 11111010。
那么,補(bǔ)碼為:
11111111 11111111 11111111 11111010 + 1 = 11111111 11111111 11111111 11111011
所以,-5 在計(jì)算機(jī)中表達(dá)為:11111111 11111111 11111111 11111011。轉(zhuǎn)換為十六進(jìn)制:0xFFFFFFFB。

再舉一例,我們來看整數(shù)-1在計(jì)算機(jī)中如何表示。

假設(shè)這也是一個(gè)int類型,那么:
1、先取-1的原碼:10000000 00000000 00000000 00000001
2、得反碼: 11111111 11111111 11111111 11111110(除符號(hào)位按位取反)
3、得補(bǔ)碼: 11111111 11111111 11111111 11111111
可見,-1在計(jì)算機(jī)里用二進(jìn)制表達(dá)就是全1。16進(jìn)制為:0xFFFFFF

主要知識(shí)點(diǎn):

①正數(shù)的反碼和補(bǔ)碼都與原碼相同。
②而負(fù)數(shù)的反碼為對該數(shù)的原碼除符號(hào)位外各位取反。
③負(fù)數(shù)的補(bǔ)碼為對該數(shù)的原碼除符號(hào)位外各位取反,然后在最后一位加1

下面是書上原文:

①原碼表示法規(guī)定:用符號(hào)位和數(shù)值表示帶符號(hào)數(shù),正數(shù)的符號(hào)位用“0”表示,負(fù)數(shù)的符號(hào)位用“1”表示,數(shù)值部分用二進(jìn)制形式表示。
②反碼表示法規(guī)定:正數(shù)的反碼與原碼相同,負(fù)數(shù)的反碼為對該數(shù)的原碼除符號(hào)位外各位取反。
③補(bǔ)碼表示法規(guī)定:正數(shù)的補(bǔ)碼與原碼相同,負(fù)數(shù)的補(bǔ)碼為對該數(shù)的原碼除符號(hào)位外各位取反,然后在最后一位加1.
④正零和負(fù)零的補(bǔ)碼相同,[+0]補(bǔ)=[-0]補(bǔ)=0000 0000B。

2、符號(hào)位為1的二進(jìn)制轉(zhuǎn)十進(jìn)制負(fù)數(shù)

相信大家已經(jīng)知道如何個(gè)轉(zhuǎn)法了,不過在此還是說明一下。

①除去符號(hào)位減1;

②除去符號(hào)位,按位取反;結(jié)果就是負(fù)數(shù)的源碼;

③源碼轉(zhuǎn)成相應(yīng)的十進(jìn)制。

PS:對于十進(jìn)制負(fù)數(shù)和二進(jìn)制的換轉(zhuǎn)到此結(jié)束,如果有錯(cuò)誤或有更好的方法,歡迎討論。

相關(guān)文章

最新評論