python 中位於運算子 應用

2021-10-12 07:18:56 字數 1174 閱讀 6493

&運算子在計算機中是二進位制運算子,常使用&=,即先進性位於運算子,在進行賦值,例如 a&=b 等價於 a=a&b。位於運算只二進位制「保同除異」

a = 3     #a = 011

b = 2 #b = 010

a& = b #a = 010

print(a) #a = 2

題目描述: 輸入乙個整數,輸出該數二進位制表示中1的個數。其中負數用補碼表示。

計算乙個整數的二進位制1的個數,我們知道,我們熟悉的10進製在計算機中是以補碼的形式儲存的,正整數的補碼,反碼,原碼是一樣的,二進位制中只需要迴圈消除掉1個位數,即可計算1的個數,按n&(n-1),從右至左依次消除1,計數器+1 即可

而負數在計算機中是以補碼存在的,負數首位是1,如果直接按照n&(n-1),會怎麼樣呢

def

number1

(n):

# write code here

cnt =

0while n <0:

cnt +=

1 n =

(n -1)

& n print

(n)if n <

-0xffffffff

:#這裡判斷下n的數值,會發現 n趨向計算機字長

break

#[-0xffffffff],甚至會超出字長

return cnt

a = number1(-1

)print

(a)

所以在負數運算時要將負數轉換成正整數,與0xffffffff位於,得到相應的正整數,在計算1的個數 n&n-1

所以何必**如下

def

number1

(n):

# write code here

cnt =

0if n <0:

n = n &

0xffffffff

#16進製制 0x

while n <0:

cnt +=

1 n =

(n -1)

& n print

(n)# if n < -128:

# break

return cnt

Python 海象運算子應用

leetcode上有道面試題 判斷字元是否唯一 其中有乙個答案是利用位運算子解決 class solution def isunique self,astr str bool t 0for c in astr if t p 1 ord c 97 return false t p return tru...

運算子應用詳解

c語言中的 用法可謂靈活多樣,掌握了這些運算子的用法,可以大大提高程式設計效率,尤其涉及到二進位制位的程式設計,其優點將會更加淋漓盡致地發揮出來。直接上 1.輸入乙個十進位制數,返回它的二進位制序列中 1 的個數。方法1 將value值和1進行相與,若結果為1,則計數器加1.再將value整體右移,...

python運算子中 Python中的運算子

python中的運算子 數 算符 比較運算子 邏輯運算子 賦值運算子 1.數 算符 乘法 除法 取模 取餘 求餘數 整除 冪運算 1 和數學中的功能一模一樣,沒有區別 print 1 1 print 1 1 print 1 1 注意 的結果是浮點數。print 1 1 1.0 print 5 2 2...