最近在刷算法题,碰到许多需要使用位运算符进行优化的算法,所以就去复习了一下
位逻辑运算符:
介绍:
示例:
位运算符与:& 只有两个值都为1的时候结果才为1,只要有一个值为0结果都为0
位运算符或:| 当有一个值为1的时候结果为1,只有两个值都为0的时候结果才为0
位运算符取反:~ 就当前值取反(0取反是1,1取反是0)
位运算符异或:^ 两个值相等的时候为0,否则为1
位移运算符:
介绍:
二进制数最高位是符号位,1是负数,0是正数
位移运算符:<<左移位:二进制数所有数字向左移一位,高位溢出舍去,低位空缺补0(左移可以做成二的运算前提是在符号位不变的情况下)
>>右移位:二进制数所有数字向右移一位,正数高位空缺补0,负数补1,低位溢出舍去
无符号右移位>>>:负数移位之后会变成正数(byte和short不适用于无符号右移)
本人是个小白菜鸡,第一次写博客记录一下所学知识,如有错误还请大佬和前辈指出,以上示例图片取自某站up主明日科技,文字是个人总结,如有侵权联系马上删除