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

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

python補碼函數(shù) python求原碼補碼反碼函數(shù)

python中的原碼反碼和補碼

更詳細的介紹可參考 這篇文章

為華池等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及華池網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、華池網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

如下以8位二進制為例:

特殊地數(shù)字在計算機中用二進制補碼形式表示,補碼10000000表示的不是 -0,而是-128

一般來講,整形數(shù)在內(nèi)存中是以 補碼 的形式存放的,輸出的時候同樣也是按照 補碼 輸出的。

但是在 Python 中,情況是這樣的:

所以為了獲得十進制負數(shù)的補碼,我們需要手動將其和 0xffffffff 進行與操作,得到一個十六進制數(shù),再交給 bin() 轉(zhuǎn)化,這時內(nèi)存中得到的才是你想要的補碼。

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

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

計算機文件大小單位

b = bit 位(比特)

B = Byte 字節(jié)

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

1KB = 1024B

1MB = 1024KB

1GB = 1024MB

1TB = 1024GB

1PB = 1024TB

1EB = 1024PB

進制分類

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

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

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

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

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

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

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

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

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

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

例: 0b10100101

運算: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

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

例: 0o127

運算:7*8^0 + 2*8^1 + 1*8^2 = 7+16+64 = 87

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

例: 0xff

運算:15*16^0 + 15*16^1 = 255

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

426 = 0b110101010

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

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

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

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

426 = 0o652

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

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

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

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

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

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

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

相關(guān)推薦:《Python視頻教程》

原碼,反碼,補碼

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

而原碼是通過補碼得到的。

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

***進制轉(zhuǎn)換的時候需要先把內(nèi)存存儲的補碼拿出來變成原碼在進行轉(zhuǎn)換輸出***

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

補碼:用來做數(shù)據(jù)的存儲運算,可以實現(xiàn)計算機底層的減法操作,因而提出(可以表達出一個數(shù)的正負)。

也就是說默認計算機只會做加法,例:5+(-3) = 5 - 3。

乘法除法是通過左移和右移 來實現(xiàn)。

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

正數(shù):

原碼 = 反碼 = 補碼

負數(shù):

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

補碼 = 反碼加1

反碼 = 補碼減1

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

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

原碼 = 補碼取反加1

補碼 = 原碼取反加1

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

比如

正數(shù)1在計算機中的存儲即為

0 00000000000000000000001

負數(shù)1 在計算機中的存儲即為

1 00000000000000000000001

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

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

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

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

計算機的運算過程實際就是補碼相加的一個過程。

比如-2 + 3

-2 的原碼為

1 000000000000000000000000010

反碼為:

1 111111111111111111111111101

補碼為:

1 111111111111111111111111110

3的原碼為

0 000000000000000000000000011

反碼為:

0 000000000000000000000000011

補碼為:

0 000000000000000000000000011

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

1 111111111111111111111111110

+

0 000000000000000000000000011

=

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

0 000000000000000000000000001

結(jié)果為1

再比如-2 + 1

-2 的原碼為

1 000000000000000000000000010

反碼為:

1 111111111111111111111111101

補碼為:

1 111111111111111111111111110

1的原碼為

0 000000000000000000000000001

1的反碼為:

0 000000000000000000000000001

1的補碼為:

0 000000000000000000000000001

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

1 111111111111111111111111110

+

0 000000000000000000000000001

=

1 111111111111111111111111111

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

1 000000000000000000000000001

結(jié)果為1

求python取原碼、補碼、反碼的方法或函數(shù)

原碼:原碼是二進制數(shù)字的一種簡單的表示法。二進制首位為符號位,1代表負,0代表正。

反碼:反碼可由原碼得到。如果是正數(shù),反碼與原碼相同;如果是負數(shù),反碼是其原碼(符號位除外)各位取反而得到的。

補碼:補碼可由原碼得到。如果是正數(shù),補碼與原碼相同;如果是負數(shù),補碼是對其原碼(除符號位外)各位取反,并在末位加1而得到的(有進位則進位,但不改變符號位)。

python有按位取反的操作符:~ ? 但是對負整數(shù)要小心操作,因為在計算機系統(tǒng)中,數(shù)值一律用補碼來表示和存儲的。


文章名稱:python補碼函數(shù) python求原碼補碼反碼函數(shù)
本文地址:http://weahome.cn/article/dodioes.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部