真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎樣理解python中的進(jìn)制轉(zhuǎn)換和原碼,反碼,補(bǔ)碼

怎樣理解python中的進(jìn)制轉(zhuǎn)換和原碼,反碼,補(bǔ)碼?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

創(chuàng)新互聯(lián)建站專注于企業(yè)全網(wǎng)營(yíng)銷推廣、網(wǎng)站重做改版、啟東網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)商城網(wǎng)站開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為啟東等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。

python中的進(jìn)制轉(zhuǎn)換和原碼,反碼,補(bǔ)碼

計(jì)算機(jī)文件大小單位

b = bit 位(比特)

B = Byte 字節(jié)

1Byte = 8 bit #一個(gè)字節(jié)等于8位 可以簡(jiǎn)寫(xiě)成 1B = 8b

1KB = 1024B

1MB = 1024KB

1GB = 1024MB

1TB = 1024GB

1PB = 1024TB

1EB = 1024PB

進(jìn)制分類

二進(jìn)制:由2個(gè)數(shù)字組成,有0 和 1 python中標(biāo)志:0b

八進(jìn)制:由8個(gè)數(shù)字組成,有0,1,2,3,4,5,6,7 python中標(biāo)志:0o

十進(jìn)制:有10個(gè)數(shù)字組成,有0,1,2,3,4,5,6,7,8,9 python中標(biāo)志:無(wú)

十六進(jìn)制:有16個(gè)數(shù)字組成,有0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f(進(jìn)制字母大小寫(xiě)都可以,分別代表10,11,12,13,14,15) python中標(biāo)志:0x

python中的進(jìn)制轉(zhuǎn)換:

其他進(jìn)制轉(zhuǎn)換為十進(jìn)制:int(相應(yīng)進(jìn)制)

其他進(jìn)制轉(zhuǎn)換為二進(jìn)制:bin(相應(yīng)進(jìn)制)

其他進(jìn)制轉(zhuǎn)換為八進(jìn)制:oct(相應(yīng)進(jìn)制)

其他進(jìn)制轉(zhuǎn)換為十六進(jìn)制:hex(相應(yīng)進(jìn)制)

二進(jìn)制 轉(zhuǎn)化成 十進(jìn)制:

例: 0b10100101 

運(yùn)算:1* 2^0 + 0* 2^1 + 1* 2^2 + 0* 2^3 + 0* 2^4 + 1* 2^5 + 0* 2^6 + 1* 2^7=

1 + 0 + 4 + 0 + 0 + 32 + 0 + 128 = 165

八進(jìn)制 轉(zhuǎn)化成 十進(jìn)制:

例: 0o127

運(yùn)算:7*8^0 + 2*8^1 + 1*8^2 = 7+16+64 = 87

十六進(jìn)制 轉(zhuǎn)化成 十進(jìn)制:

例: 0xff

運(yùn)算:15*16^0 + 15*16^1 = 255

十進(jìn)制 轉(zhuǎn)化成 二進(jìn)制:

426 => 0b110101010 

運(yùn)算過(guò)程: 用426除以2,得出的結(jié)果再去不停地除以2,

直到除完最后的結(jié)果小于2停止,

在把每個(gè)階段求得的余數(shù)從下到上依次拼接完畢即可

十進(jìn)制 轉(zhuǎn)化成 八進(jìn)制:    

426 => 0o652

運(yùn)算過(guò)程: 用426除以8,得出的結(jié)果再去不停地除以8,

直到除完最后的結(jié)果小于8停止,

在把每個(gè)階段求得的余數(shù)從下到上依次拼接完畢即可

十進(jìn)制 轉(zhuǎn)化成 十六進(jìn)制:   

運(yùn)算過(guò)程: 用426除以16,得出的結(jié)果再去不停地除以16,

直到除完最后的結(jié)果小于16停止,

在把每個(gè)階段求得的余數(shù)從下到上依次拼接完畢即可。

原碼,反碼,補(bǔ)碼

實(shí)際人們看到的數(shù)字是原碼轉(zhuǎn)化之后顯示出來(lái)的。

而原碼是通過(guò)補(bǔ)碼得到的。

計(jì)算機(jī)的所有數(shù)據(jù)在底層都是以二進(jìn)制的補(bǔ)碼形式存儲(chǔ)。

***進(jìn)制轉(zhuǎn)換的時(shí)候需要先把內(nèi)存存儲(chǔ)的補(bǔ)碼拿出來(lái)變成原碼在進(jìn)行轉(zhuǎn)換輸出***

反碼:二進(jìn)制碼0變1,1變0叫做反碼,反碼用于原碼補(bǔ)碼之間的轉(zhuǎn)換。

補(bǔ)碼:用來(lái)做數(shù)據(jù)的存儲(chǔ)運(yùn)算,可以實(shí)現(xiàn)計(jì)算機(jī)底層的減法操作,因而提出(可以表達(dá)出一個(gè)數(shù)的正負(fù))。

也就是說(shuō)默認(rèn)計(jì)算機(jī)只會(huì)做加法,例:5+(-3) => 5 - 3。

乘法除法是通過(guò)左移和右移 << >> 來(lái)實(shí)現(xiàn)。

正數(shù)高位補(bǔ)0,負(fù)數(shù)高位補(bǔ)1。

正數(shù):

原碼 = 反碼 = 補(bǔ)碼

負(fù)數(shù):

反碼 = 原碼取反(除高位)

補(bǔ)碼 = 反碼加1

反碼 = 補(bǔ)碼減1

原碼 = 反碼取反(除高位)

我們會(huì)發(fā)現(xiàn),在取反前減1和在取反后加1的效果是一樣的,這就和-2-1 = -(2+1)一個(gè)道理,所以會(huì)得出這樣的規(guī)律:

原碼 = 補(bǔ)碼取反加1

補(bǔ)碼 = 原碼取反加1

一個(gè)數(shù)在計(jì)算機(jī)中的二進(jìn)制表示形式, 叫做這個(gè)數(shù)的機(jī)器數(shù)。機(jī)器數(shù)是帶符號(hào)的,在計(jì)算機(jī)用一個(gè)數(shù)的最高位存放符號(hào), 叫符號(hào)位正數(shù)為0, 負(fù)數(shù)為1。

比如

正數(shù)1在計(jì)算機(jī)中的存儲(chǔ)即為

0 00000000000000000000001

負(fù)數(shù)1 在計(jì)算機(jī)中的存儲(chǔ)即為

1 00000000000000000000001

一個(gè)正數(shù),轉(zhuǎn)換為二進(jìn)制位就是這個(gè)正數(shù)的原碼。負(fù)數(shù)的絕對(duì)值轉(zhuǎn)換成二進(jìn)制位然后在高位補(bǔ)1就是這個(gè)負(fù)數(shù)的原碼。

正數(shù)的反碼就是原碼,負(fù)數(shù)的反碼等于原碼除符號(hào)位以外所有的位取反。

正數(shù)的補(bǔ)碼與原碼相同,負(fù)數(shù)的補(bǔ)碼為 其原碼除符號(hào)位外所有位取反(得到反碼了),然后最低位加1。

所以原碼,反碼,補(bǔ)碼正數(shù)情況下是一致的,負(fù)數(shù)情況下是不一致的。

計(jì)算機(jī)的運(yùn)算過(guò)程實(shí)際就是補(bǔ)碼相加的一個(gè)過(guò)程。

比如-2 + 3

-2 的原碼為

1 000000000000000000000000010

反碼為:

1 111111111111111111111111101

補(bǔ)碼為:

1 111111111111111111111111110

3的原碼為

0 000000000000000000000000011

反碼為:

0 000000000000000000000000011

補(bǔ)碼為:

0 000000000000000000000000011

那么二者補(bǔ)碼相加結(jié)果為

1 111111111111111111111111110

+

0 000000000000000000000000011

=

10 000000000000000000000000001(計(jì)算機(jī)存儲(chǔ)為32位,故前面溢出的1被舍棄,高位為0)

0 000000000000000000000000001

結(jié)果為1

再比如-2 + 1

-2 的原碼為

1 000000000000000000000000010

反碼為:

1 111111111111111111111111101

補(bǔ)碼為:

1 111111111111111111111111110

1的原碼為

0 000000000000000000000000001

1的反碼為:

0 000000000000000000000000001

1的補(bǔ)碼為:

0 000000000000000000000000001

二者的補(bǔ)碼相加結(jié)果為

1 111111111111111111111111110

+

0 000000000000000000000000001

=

1 111111111111111111111111111

得出的補(bǔ)碼轉(zhuǎn)化為原碼, 最低位減一得到反碼,然后除符號(hào)位外所有位取反,得到結(jié)果

1 000000000000000000000000001

結(jié)果為1

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。


本文名稱:怎樣理解python中的進(jìn)制轉(zhuǎn)換和原碼,反碼,補(bǔ)碼
路徑分享:http://weahome.cn/article/iecicj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部