公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助! 小猿会从最基础的面试题开始,每天一题。如果参考答案不够好,或者有错误的话,麻烦大家可以在留言区给出自己的意见和讨论,大家是要一起学习的 。 废话不多说,开始今天的题目: 问:说说Python中的6种位运算符? 答:在Python中,按位运算符有左移运算符(<<)、右移运算符(>>)、按位与运算(&)、按位或运算(|)、按位取反运算(~)、异或运算符,其中按位取反运算符为单目运算符 。 本文例子来源于: https://blog.csdn.net/wangfei8348/article/details/51744311/ 下面分别来说说这几种Python所有位运算符的操作: 按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下: 按位与 ( bitwise and of x and y ) & 举例:5&3 = 1 解释:101 11 相同位仅为个位1 ,故结果为 1 按位或 ( bitwise or of x and y ) | 举例:5|3 = 7 解释:101 11 出现1的位是 1 1 1,故结果为 111 按位异或 ( bitwise exclusive or of x and y ) ^ 举例:5^3 = 6 解释:101 11 对位相加(不进位)是 1 1 0,故结果为 110 按位反转 (the bits of x inverted ) ~ 举例:~5 = -6 解释:将二进制数+1之后乘以-1,即~x = -(x+1),-(101 + 1) = -110 按位反转仅能用在数字前面。所以写成 3+~5 可以得到结果-3,写成3~5就出错了 按位左移 ( x shifted left by n bits ) << 举例: 5<<2 = 20 解释:101 向左移动2位得到 10100 ,即右面多出2位用0补 按位右移 ( x shifted right by n bits ) >> 举例:5>>2 = 1 解释:101 向右移动2位得到 1,即去掉右面的2位 如果对于参考答案有不认同的,大家可以在评论区指出和补充,欢迎留言! 更多题目: 关注小猿公众号,每天学习一道题 |
|