以后把看到的觉得有用的符号运算记录下来。
符号运算效率会更高一点,虽然甚微,但是还是有的。
我记录的都是实用的,要是用上自己都看不懂,就有点搬石头砸自己的脚了。
# # 判断 int 类型和 long类型 是奇数还是偶数
用符号 & ,这个符号是与的意思
首先在第一个问题上说为什么 符号运算要比算术运算效率更高,因为首先计算机底层是二进制,就是非零就是一,算术运算最后也是转成二进制的符号运算。如果你直接用符号运算,就省去了转换的过程。
整数化成二进制,会是这样的,偶数二进制末尾是 0,而 0 & 1 是 0,所以可以根据这个现象,来判断整数是零还是奇数。
if(n & 1 == 0){
System.out.println("执行偶数操作");
}
# # << 左移代替 乘法
因为二进制数字左移一次,代表乘以 2。
所以的 乘以 2的n次方的都可以换成 <<n
也就是说:1*2 的结果等于 1<<1 ; 1*4 等于 1 << 2
可以看 hashMap的源码用来声明默认空间大小的,也就是说 hashMap 的默认大小是 16.
# # 不借用第三个数交换两个数
void swap(int x , int y)标签:妙用,运算,符号,二进制,偶数,int,hashMap,一篇 From: https://blog.51cto.com/u_15812686/5739966
{
x ^= y;
y ^= x;
x ^= y;
}