在Python中这些都怎么算啊

3<<2为什么等于12啊
3&7为什么等于3
3|8为什么等于11
有没有大神可以教教我😭😭,这些符号都是怎么看怎么算出来的

这些都可以转为二进制计算,(手机样式不好的话,建议用电脑看电脑看)
3 的二进制是 0011
7 的二进制是 0111
8 的二进制是 1000
这里面是多少位看计算机啊,不够的前面补0
3<< 2 的意思是 3被右移2位。0011右移2位就是1100,再转为10进制就是1*2^3+1*2^2+0*2^1+0*2^0 = 8+4+0+0=12
3&7的意思是 3且7 (且:都为真才为真)0011 & 0111 = 0011 = 0*2^3+0*2^2+1*2^1+1*2^0 = 0+0+2+1=3
3|8的意思是 3或8 (或:有一个为真就为真)0011 | 1000 = 1011 = 1*2^3+0*2^2+1*2^1+1*2^0 = 8+0+2+1=11

如果有帮助的话,请点一下采纳

这都是纯数学啊
位运算就是要转二进制计算的
这就像问1+2为什么等于3一样,没有为什么,数学上就是这么定义的
如果你不知道怎么转二进制,那只能去恶补,也不是别人三言两语你就会了的

转为2进制
1、3的二进制是00000011,<<2表示左移两位,即00001100,再转为十进制是12。
2、3的二进制是00000011,7的二进制是00000111,&是按位与运算,1&1=1,1&0、0&1、0&0都是0,故结果为:00000011,转为十进制是3
3、3的二进制是00000011,8的二进制是00001000,|是按位或运算,0|0=0,1|0、0|1、1|1都是1,故结果为:00001011,转为十进制是11

3的二进制是11,向左移2位就是1100,所以是12
&位与 :011 & 111 所以是11 就是3
|位或 : 0011 | 1000 所以是1011 就是11

<<表示二进制左移,2代表移几位。3的二进制为0011,左移两位为1100=12
&表示按位与,1&1=1,1&0=0,0&0=0,所以7的二进制为0111,7&3=1111&0011=0011=3
|就是按位或,1|1=1,1|0=1,0|0=0,所以3|8=0011 | 1000=1011=11

简单粗暴的理解:<< 表示“翻几番”,>>是“折半”,&和 | 都是两个二进制数的操作,先转为二进制再理解。&就是两数相同位置如果都为1则得到的新数相同位置也为1,反之都为0,| 就是两数相同位置都没有1则为0,反之都为1。
对了,二进制数从右往左数第一第二这样。

1、3<<2中的”<<“运算符代表的意思是左移,运算符左边代表待运算的数,右边代表移动的位数,左移该数扩大2的n次幂倍,其中n为移动的位数,综上该表达式的运算结果是3左移2位,也就是扩大了2的平方倍,也就是3*4.
2、3&7,其中&是与运算符,写成二进制数,具体写多少位,根据最大的数定,该表达式,最大为7用二进制表示为111,故3也应写成三位,011.
3、3|8,其中|是或运算符,解法同2.