&:按位与运算符:参与运算的两个值,如果两个相应位置都为1,则该位的结果为1,否则为0.
|:按位或运算符:只要有一个为1,就为1
^:不同为1,相同为0
~:取反,把1变成0,0变成1
<<:左移运算符, 将运算数的各二进制全部左移若干位,有<<右边的数字指定移动位数,低位补0
>>:右移运算符
python将一个整数转换为二进制数的方法,自带bin()函数:
bin(1234).replace('ob','')
这个二进制数的长度为len(bin(1234).replace('ob',''))
例题: 实现一个函数,输入一个整数,输出该数二进制表示中1的个数,例如把9表示成二进制是1001,有2为是1,因此输出2.
解决方法: 首先把n和1做与运算,判断n的最低位是不是1(即运算结果不为0),然后把1左移一位得到2,再和n做与运算,判断n的次低位是不是1(即运算结果不为0),依次类推,直到判断完n的所有位是不是1,代码如下:
import sys
n=int(sys.stdin.readline().strip())
def cacl(n):
num=bin(n).replace('0b','')
k=1
count=0
for i in range(0,len(num)):
if int(num)&k!=0:
count=count+1
k=k<<1
return count
r=cacl(n)
print(r)