一篇文章介绍 符号运算的妙用

以后把看到的觉得有用的符号运算记录下来。

符号运算效率会更高一点,虽然甚微,但是还是有的。

我记录的都是实用的,要是用上自己都看不懂,就有点搬石头砸自己的脚了。

 

# #  判断 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)
{
    x ^= y;
    y ^= x;
    x ^= y;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章