Python 進製的轉換 位運算規則

2021-10-10 07:23:09 字數 1700 閱讀 2949

binary:二進位制;octal:八進位制;hexadecimal:十六進製制

使用int(其他進製資料,進製),返回資料對應的十進位制,其中資料要用字串形式

注意事項:資料不可以加形如的代表進製的字元

int

('10000000',2

)# 128, 2進製轉換為10進製

int(

'200',8

)# 128 , 8進製轉換為10進製

int(

'80',16

)# 128 , 16進製制轉換為10進製

bin

(128

)# '0b10000000', 10進製轉2進製

oct(

128)

# '0o200', 10進製轉8進製

hex(

128)

# '0x80', 10進製轉16進製制

總體運算規則首先把整數轉換為二進位制表示形式,按最低位對齊,短的高位補0,然後進行位運算,最後把得到的二進位制轉換為十進位制數。

與運算 (&):0&0

,0&1

,1&0 都為0, 1&1

=1 ;另外整數a & b表示a和b對應的二進位制進行與運算

或運算(|):0|1

=1|0

=1|1

=1,0|0

=0求反運算(~):~0=

1,~1

=0,對於整數x有~x=

-(x+1)

異或運算(^):0^0

=1^1

=0,0^1

=1^0

=1左移位運算(<<):原來的所有位左移,最低位補0,相當於乘以2

右移位運算(>>):原來的所有位右移,最低位丟棄,最高位使用符號位填充,相當於整除2

print

(0b110 &

0b010)#2

print(3

|2)#3print(3

^2)#1print(~

2)#-

3print(1

<<

2)#4

print(4

>>

2)#1

以下對正、負數都適用:

# 求補碼對應的十進位制

# 對正數

a =10

print

(a &

0xffff

)# 預設32位

# 對負數

a =-

10print

(a &

0xffff

)# 總的來說就是和0xffff進行與運算

# 求補碼

# 對正數

a =10

print

(bin

(a &

0xffff))

# 預設32位

# 對負數

a =-

10print

(bin

(a &

0xffff))

# 總的來說就是和0xffff進行與運算,然後再適用bin函式將其轉換為二進位制

Python進製的轉換 位運算規則

binary 二進位制 octal 八進位制 十六進製制 hexadecimal 使用int 其他進製資料,進製 返回資料對應的十進位制,其中資料要用字串形式 注意事項 資料不可以加形如的代表進製的字元 int 10000000 2 128,2進製轉換為10進製 int 200 8 128 8進製轉...

Go 語言 進製的轉換 位運算子的使用

二進位制 0,1,滿 2 進 1 在 go 中,不能直接使用 二進位制來表示乙個整數。十進位制 0 9,滿 10 進 1 八進位制 0 7,滿 8 進 1。以數字 0 開頭表示 十六進製制 0 9 及 a f,滿 16 進 1。以 0x 或 0x 開頭表示 a f 不區分大小寫 舉個栗子 packa...

進製轉換的簡單運算

常見的進製轉換就是十進位制 二進位制 八進位制 十六進製制之間的轉換,那麼如果給你乙個等式,讓你判斷在哪種進製下該等式成立?這型別的題該怎麼求解。接下來通過兩個例題講解一下 例1.如果等式 15 4 112 成立,那麼用了下列哪一種進製?a.6 b.7 c.8 d.9 第一種比較笨的辦法就是將選項帶...