运算符 | 作用 | a=27(10) | b=20(10) | ans |
---|---|---|---|---|
& | 按位与 | 11011(2) | 10100(2) | 10000(2)=16(10) |
| | 按位或 | 11011(2) | 10100(2) | 11111(2)=31(10) |
^ | 异或 | 11011(2) | 10100(2) | 01111(2)=15(10) |
~ | 按位非 | 11011(2) | 无 | 00100(2)=4(10) |
P.S.数字后面的括号代表进制
众所周知,在计算机中,数字以二进制的格式存储。
而位运算,就是对于二进制数字直接处理的运算,因而执行速度最快。
本节内容理解就好,在正常的学习过程中,位运算基本都可以用其他四则运算替代,所以不是必须掌握的内容。
下面来一个一个的进行说明:
按位与,即&
对于两个二进制数字的某一位,如果它们都为1,则结果的这一位也为1
如果他们不都为1(即有0),则结果的这一位为0。
比如
110&101=100
111&110=110
按位或,即|
对于两个二进制数字的某一位,如果它们都为0,则结果的这一位也为0
如果他们不都为0(即有1),则结果的这一位为1。
比如
110&101=111
111&110=111
异或,即^
对于两个二进制数字的某一位,如果它们不一样,则结果的这一位为1
如果他们一样,则结果为0
比如
110&101=011=11
111&110=001=1
按位非,即~
对于以个二进制数字的某一位,如果它为0,则结果的这一位为1
如果他们为1,则结果的这一位为0。
比如
~1111 = 0000 = 0
~1010 = 0101 =101