python 教程 二進位制運算子

2021-09-25 18:57:52 字數 4062 閱讀 6102

計算機發明之初就是為了計算數字,程式語言就是為了更好的利用計算機進行數字計算的。python作為乙個偏向於運算的程式語言,自然也少不了數字運算。

本次我們將學習python中關於二進位制的運算的部分。

1.十進位制轉二進位制

函式介紹:bin()函式用於將十進位制數字轉化為二進位制數字

用法:bin(十進位制數字)

例如計算十進位制100的二進位制資料

bin(100)

結果'0b1100100'

#python中二進位制的表現格式為 0b 加二進位制值。

#比如二進位制 00101100 在python的表現格式就為 0b101100,

#前置0可以省略,就是二進位制從第一位開始的連續的0可以省略

#比如二進位制 00101100,可以縮寫為 101100

2.二進位制轉十進位制

函式介紹:int()函式用於將十進位制數字轉化為二進位制數字

用法:int("二進位制資料",base=資料型別)

例如計算二進位制'0b1100100'的十進位制資料

int('0b1100100',base=2)

結果100

下面我將介紹兩個二進位制數字之間的運算符號:

1 .與運算(符號:& )

解釋:都為1才是1。也可以理解為都1才行,不然就是0。

舉個例子:

a = 240          #十進位制的240的二進位制數為   11110000

b = 139 #十進位制的139的二進位制數為 10001011

print (a & b) #列印 a 與 b的結果

執行結果:

128
運算過程:

1. 首先計算機會將 a 和 b 的數字轉化為二進位制,我們把他們依次列出來

a = 11110000

b = 10001011

2.我們把這兩個數字以每位對齊的形式列出來

1 1 1 1 0 0 0 0 --------------------a

1 0 0 0 1 0 1 1 --------------------b

3.比較 a 和 b 中相同的部分,並將相同的部分列出來,不同的部分用0代替

1 0 0 0 0 0 0 0 --------------------c,這個就是 a 和 b 與運算得出的結果

4.把結果換算成為常見的十進位制

int('0b10000000',base=2) >>> 128 #得到數字128

5.所以 a 與 b 的結果是:128

2 .或運算(符號:| )

解釋:只要有乙個為1就是1。也可以理解為有1為1,否則為0

舉個例子:

a = 240          #十進位制的240的二進位制數為   11110000

b = 139 #十進位制的139的二進位制數為 10001011

print (a | b) #列印 a 與 b的結果

執行結果:

251
運算過程:

1. 首先計算機會將 a 和 b 的數字轉化為二進位制,我們把他們依次列出來

a = 11110000

b = 10001011

2.我們把這兩個數字以每位對齊的形式列出來

1 1 1 1 0 0 0 0 --------------------a

1 0 0 0 1 0 1 1 --------------------b

3.比較 a 和 b 中為1的部分,並將為1的部分列出來,不為1的部分用0代替。

1 1 1 1 1 0 1 1 --------------------c,這個就是 a 和 b 或運算得出的結果

4.把結果換算成為常見的十進位制

int("0b11111011",base=2) >>> 251 #得到數字251

5.所以 a 或 b 的結果是:251

3 .異或運算(符號:^)

解釋:當數字不同時才為1,否則為0

舉個例子:

a = 240          #十進位制的240的二進位制數為   11110000

b = 139 #十進位制的139的二進位制數為 10001011

print (a ^ b) #列印 a 與 b的結果

執行結果:

123
運算過程:

1. 首先計算機會將 a 和 b 的數字轉化為二進位制,我們把他們依次列出來

a = 11110000

b = 10001011

2.我們把這兩個數字以每位對齊的形式列出來

1 1 1 1 0 0 0 0 --------------------a

1 0 0 0 1 0 1 1 --------------------b

3.比較 a 和 b 中不同的部分,並將不同的部分寫為1,相同的部分用0代替。

0 1 1 1 1 0 1 1 --------------------c,這個就是 a 和 b 異或運算得出的結果

4.把結果換算成為常見的十進位制

int("0b01111011",base=2) >>> 123 #得到數字123

5.所以 a 異或 b 的結果是:123

接下來我將介紹單個二進位制數的運算:

左位移運算(符號:<<)

解釋:將二進位制數字整體往左移動,你可以理解為往結尾出新增0

舉個例子:

a = 240            #十進位制的240的二進位制數為   11110000

print (a << 2) #列印 a 左位移兩位的結果

執行結果:

960
運算過程:

1. 首先計算機會將 a  的數字轉化為二進位制,我們以每位對齊的形式列出來

1 1 1 1 0 0 0 0 --------------------a

2.將數字整體左位移,結尾處用0補充,你可以理解為在結尾處新增0

1 1 1 1 0 0 0 0 0 0 --------------------c,這個就是 a 左位移兩位的結果

3.把結果換算成為常見的十進位制

int("0b1111000000",base=2) >>> 960 #得到數字960

4.所以 a 左位移兩位的結果是:960

右位移運算(符號:>>)

解釋:將二進位制數字整體往右移動,你可以理解為從末尾處刪除數字

舉個例子:

a = 240            #十進位制的240的二進位制數為   11110000

print (a >> 2) #列印 a 右位移兩位的結果

執行結果:

60
運算過程:

1. 首先計算機會將 a  的數字轉化為二進位制,我們以每位對齊的形式列出來

1 1 1 1 0 0 0 0 --------------------a

2.將數字整體右位移,你可以理解為從末尾處開始刪除數字

1 1 1 1 0 0 --------------------c,這個就是 a 右位移兩位的結果

3.把結果換算成為常見的十進位制

int("0b111100",base=2) >>> 60 #得到數字60

4.所以 a 右位移兩位的結果是:60

二進位制位運算子

二進位制位運算子用於直接對二進位制位進行計算,一共7個。i i 0 上面這行 的意思就是將i 不管是整數或小數 轉為32位整數。利用這一特性,可以寫乙個函式,將任意數值轉為32位整數。function toint32 x toint32 1.001 1 toint32 1.999 1 toint32...

二進位制中的運算子

二進位制中的運算子 與運算 兩者都為1則為1,否則為0 1 1 1,1 0 0,0 1 0,0 0 0 或運算 兩者都為0為0,否則為1 1 1 1,1 0 1,0 1 1,0 0 0 非運算 1取0 0 取1 1 0 0 1 1001 0110 異或運算 兩者相等為0,不等為1 1 1 0 1 0...

js 二進位制位運算子

ecmascript 整數有兩種型別,即有符號整數 允許用正數和負數 和無符號整數 只允許用正數 在 ecmascript 中,所有整數字面量預設都是有符號整數,這意味著什麼呢?有符號整數使用 31 位表示整數的數值,用第 32 位表示整數的符號,0 表示正數,1 表示負數。數值範圍從 214748...