如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。
在python中用^表示,如下代码(注意是二进制表示)。
1 ^ 0 #结果为1,因为1和0不同
0 ^ 1 #结果为1,因为0和1不同
1 ^ 1 #结果为0,因为1和1相同
0 ^ 0 #结果为0,因为0和0相同
二、异或运算的性质交换律:A ^ B = B ^ A;结合律:A ^ (B ^ C) = (A ^ B) ^ C;恒等律:X ^ 0 = X;归零律:X ^ X = 0;自反:A ^ B ^ B = A ^ 0 = A;对于任意的 X: X ^ (-1) = ~X;如果 A ^ B = C 成立,那么 A ^ B = C,B ^ C = A; 三、异或运算的实例
以 5 ^ 3 为例,理解python中异或运算的过程
首先python会将5和3转换为二进制:101^011
然后按位求异或结果:110
最后转换成十进制,结果为6
交换两个数
a, b = 5, 3 a = a ^ b b = a ^ b a = a ^ b print(a, b)
不出所料,最后的输出是a=3和b=5。
这个用法实际上利用了异或的这个特性:
x^0=xx^x=0 二、判断一个数,是否是2的指数
十进制 二进制
0 0
2 10
4 100
8 1000
16 10000
十进制 二进制
1 01
3 011
7 0111
15 01111
比所求数小一个数的二进制全是第一位为0后面全为1,刚刚跟2的几次幂对应的数相反,这时就可以用位运算中的与运算来解决了。
#判断一个数是否是2 的指数 num = int(input('请输入数字:')) if num == 0 or num & (num - 1) == 0 : print(num,'是2的指数') else : print(num,'不是2的指数')三、给定成绩,判断用户成绩的档次
s = int(input('请输入分数')) if s > 100 or s < 0 : print("请重新输入0~100分数") else : score = int(s/10) if score == 0 : print('鸡蛋') elif score == 10 : print('满分') elif score == 9 : print('优秀') elif score == 8 : print('良好') elif score == 7 : print('还可以') elif score == 6 : print('合格') else : print('不及格')四、有1、3、5、7、9组成的所有不重复的四位数之和是多少?
用数字1.3.5.7.9可以组成的数字不重复的四位数,
一共有5×4×3×2×1=120个
不管是哪一位,每个数字出现的次数相同,
因此每个数位上,每个数出现的次数=120/5=24次
因此每一数位的总和是(1+3+5+7+9)×24=600
所以所有这些数的总和=600×1111=666600
概率不太会555
六、输入信息在控制台上,输入如下信息
a a^2 a^3
1 1 1
2 4 8
3 9 27
#在控制台上,输入如下信息 print('a a^2 a^3') for a in range(1,4): print(a,'t',a**2,'t',a**3,'n')七、下列哪一项是“4是奇数或-9为正数”的否定
A、4是偶数或-9不是负数
B、4是奇数或-9不是负数
C、4是偶数和-9是负数
D、4是奇数和-9不是负数
C.4是奇数或-9不是负数
八、如果A是“10110110”,B是“11100000”,C是“10100000”,下面成立的是(D) A、 C=A|B
B、 C=~A
C、 C=~B
D、 C=A&B
A|B = 1 1111 0110 A&B = 1010 0000 = C
九、判断一个整数是奇数还是偶数,至少有两种方式实现num = int(input('请输入整数')) if num % 2 == 0: print(num,'为偶数(一)') else : print(num,'为奇数(一)') if num & 1 == 0 : print(num,'为偶数(二)') else : print(num,'为奇数(二)')十、求矩形的面积和周长
length = int(input('请输入长')) width = int(input('请输入宽')) print('面积为',length*width,'周长为',(length+width)*2)十一、根据天数(从控制台上输入)计算周数和剩余的天数
days = int(input('请输入本月已过天数')) weeks = int(days/7) print('今日为第',weeks,'周','剩余',30-days,'天')十二、根据已知圆的半径radius(从控制台上输入),求其面积和周长
radius = int(input('请输入圆半径')) print('面积为{},周长为{}'.format(radius**2*3.14,2*radius*3.14))
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)