Java 位运算理解 Java中的位移运算整理 Java右移n位 Java左移n位
一、概述
1、在浏览一篇文章时,看到一个介绍 ,使用位移操作替代乘除法 ,若位移多位该怎么计算呢?
二、代码理解
1、Java中位运算: 左移
/**
* @Description: Java 位运算 左移 用 "<<" 符号表示
* @return void
* @version v1.0
* @author wu
* @date 2021年11月24日 下午23:47:28
* @remarks: 左移n位,即乘以 2^n (2的n次幂)
*/
@Test
public void left() {
int x = 3 << 1 ; // 左移1位, 等价于 3*2
int y = 3 << 2 ; // 左移2位, 等价于 3*2*2
int z = 3 << 3 ; // 左移3位, 等价于 3*2*2*2
int zz = 3 << 5 ; // 等价于: 3*2^5; num 左移n位,即: num*2^n
System.out.println(x);
System.out.println(y);
System.out.println(z);
System.out.println(zz);
System.out.println(3*Math.pow(2, 5));
}
2、Java中位运算:右移
/**
* @Description: Java中位运算 右移 ">>" 符号表示
* @return void
* @version v1.0
* @author wu
* @date 2021年11月24日 下午23:50:38
* @remarks: 右移n位,即除以2^n (2的n次幂)
*/
@Test
public void right() {
int x = 32 >> 1 ; // 右移1位, 等价于 32/2
int y = 32 >> 2 ; // 右移2位, 等价于 32/2^2
int z = 32 >> 3 ; // 右移3位, 等价于 32/2^3
int zz = 32 >> 5 ; // 等价于 32/2^5 ; num右移n位,即: num/2^n
System.out.println(x);
System.out.println(y);
System.out.println(z);
System.out.println(zz);
System.out.println(32 / Math.pow(2, 5));
}
三、总结
1、Java中位运算,左移: 表示乘以 ;左移n位,即乘以 2^n (2的n次幂)
2、Java中位运算,右移:表示除以 ; 右移n位,即除以2^n (2的n次幂)