总结的一些java位运算的规律,方便快速计算
位移运算:
正整数 << n ; 左移运算 相当于 正整数*2的n次幂
正整数 >> n ; 右移运算 相当于 正整数/2的n次幂
负整数 << n ; 左移运算 相当于 负整数*2的n次幂
负整数 >> n ; 右移运算 相当于 负整数/2的n次幂,如果有余数则结果再-1,除数大于被除数,结果等于-1
我们在阅读源码的时候会看到有些值明明可以直接赋值,但是却被写成了如:1 << 4 这样的格式,其目的只是为了在当们用到这个数字的时候需要注意他是2的幂次方。
HashMap的初始化时,如果我们不设置其初容量大小,那么会看到源码中会帮我们设置一个默认大小:1 << 4,因为做位移运算会消耗少量资源,所以我们初始化的时候尽量直接设置大小,避免一次运算。
将一个二进制数列中的某一项设置成1或0的方法:
举例:现在有一个十进制数7,转换成二进制数列后为:00000111
那么我想让第3位上的数设置成0怎么做?
方案如下:
public static void