试图学习如何按位或运算符适用于python,我想知道为什么1 | 2 == 3?

时间:2018-10-06 05:51:32

标签: python python-3.x

我尝试多次打印各种整数(即int | int),但似乎无法建立值的工作模式。 1 | 2如何返回3,而2 | 3也返回3?

4 个答案:

答案 0 :(得分:1)

选中wikipedia

  

按位“或”取两个长度相等的位模式并执行   对每对对应位进行逻辑“或”运算。的   如果两个位均为0,则每个位置的结果为0,否则,   结果是1。

所以[0-9a-zA-Z_]1|2: 001 | 010 = 011 (3 dec)

答案 1 :(得分:1)

Python中的按位运算符的工作方式与其他语言相同。因此,如果您知道它在C中的工作方式,那么您就会知道它在Python中的工作方式。对于此特定示例,$('#send_form').click(function(){ var selected =$('#profile_select').val(); var token=$('#token').val(); $.ajax({ url:"{{ base_url }}myurl/encuestas/perfil_interna", method:"post", data:{ selected:selected, _token:token } }).done(function(response){ console.log(response); }).fail(function(err){ console.log(err); }); 用二进制1表示,00012表示。运算符OR(0010)在相同位置的两个数字 中查看每个位并进行比较。如果 any 位为1,则它将1保留在结果的那个位置:

|

因此,结果(二进制格式)为1: | 2: result: ---------------- 0 or 0 = 0 0 or 0 = 0 0 or 1 = 1 1 or 0 = 1 ,或者以10为底的0011

答案 2 :(得分:0)

0001 = 1 0010 = 2所以0001 | 0010 = 0011 =3。0010 | 0011 = 0011 = 3。 |是“或”运算。

答案 3 :(得分:0)

  

x | y 执行“按位或”。如果y的x AND的对应位为0,则输出的每个位均为0,否则为1。   https://wiki.python.org/moin/BitwiseOperators

在您的示例中,用bin()函数查看整数的位表示很有用:

>>> bin(1), bin(2), bin(3)
('0b1', '0b10', '0b11')

所以1是01,2是10,3是11。因此按位OR运算符从右到左应用于每对位,如下:1 | 2是01 | 10 = 11,2 | 3是10 | 11 = 11 (0或1表示1,1或1表示1)