上期讲述了运算符号,乘方符号是**,有不少人习惯性地打了^,结果也运算除了结果。但是,符号^在Python中有另外的意思,它是位运算符的一种。
位运算符是把数视作二进制数计算的,机器语言当中没有加减乘除,所有运算都基于位与、位或、位异或、位取反、左移位和右移位这六种位运算。
位与的Python运算符号是&,两个操作数据的二进制表示,对应数位都是1时,结果为1,否则为0.
位或的Python运算符号是|,两个操作数据的二进制表示,对应数位都是0时,结果为0,否则为1.
位异或的Python运算符号就是经常与乘方符号弄混的^,两个操作数据的二进制表示,数位相同结果为0;数位不同结果为1.
位取反的符号是~,指的是两个操作数据的二进制表示,将所有0变成1,1变成0所得的结果,注意,正负号在数的最高位,最高位是0为正,1为负。
例:
12 & 8 == 8
6 | 4 == 6
14 ^ 7 == 9
~123 == -124
左移位指的是将二进制数集体左移一位,末位用0填充,最高位舍弃。
右移位指的是将二进制数集体右移一位,末位舍弃,最高位用0填充。
逻辑运算符有三个:逻辑与、逻辑或,和逻辑非。
逻辑与指的是发生A事件的同时发生B事件,用and表示,例如:
if x >= 0 and x != 0:
x > 0
if是条件语句,我们以后细说。上述代码的意思是:如果x大于或等于0,并且x不等于0,则x大于0.
逻辑或是指发生A和B当中的任何一件事,用or表示,例如:
if x < 0 or x == 0 or x > 0:
print("x属于实数")
意思是x小于0或等于0或大于0,x都属于实数。
逻辑非指某事件不发生,比如:
if not x >= 0:
x < 0
意为x不大于或等于0,则x小于0.