位运算其实就是进制之间的运算,大家刚接触的时候可能觉得这个运算符很烦人,每次都是一串很长的数字,还有补码原码的,更有些朋友认为位运算不重要不需要掌握。其实不然,学会位运算可以更好的帮助我们了解计算机的存储形式,而且再后面的学习中也会经常用到,以后我们面试考官可能也会出这方面相关的面试题。
位运算符有4个
一个是位逻辑与 &
一个是位逻辑或 |
一个是位逻辑异或 ^
一个是取反运算符 ~
除了取反运算符,其他三个位运算符都是双目运算符,也就是有两个表达式的,结合性是从左到右,而取反运算符只有一个表达式,没有结合性。
下面我来给大家介绍一下这些运算符的基本含义
这里先假设有两个十进制的整数x和y
位逻辑与&
x&y,我们先把这两个十进制数写成32位的二进制序列,然后一一对应,如果对应的位数字都是1,才能得1,否则就是0.
举个例子
x=10 ,y=13
00000000000000000000000000001010 x
00000000000000000000000000001101 y
x&y
00000000000000000000000000001000
转化成十进制结果就是8
位逻辑或|
也是同样的,有两个二进制序列,如果对应的位其中一个是1,则结果就是1,只有两个都为0,结果才为0,还是拿上面两个数来计算
x=10 ,y=13
00