public class Test {
/**
* 右移相当于是 右边去掉 0 ,移位的个数就是去掉的个数
* 左移相当于是 昨天添加1 ,移位的个数就是添加的个数
* @param args
*/
public static void main(String[] args) {
int a = 2 >> 1; // 10 --> 1*2^1+0*2^0 = 2 ===> 01 --> 0*2^1+1*2^0 = 1
System.out.println("整数部分右移一位"+a);
int a1 = 2 >> 2;
System.out.println("整数部分右移两位"+a1);
int a3 = -2 >> 1; // 1 10 --> - (1*2^1 + 0*2^0) = -2
System.out.println("负数部分右移一位"+a3);
// double a4 = (0.5 >> 1); 小数这么表示是错误的
System.out.println("=========================");
int b = 2 << 1; // 10 --> 1*2^1+0*2^0 = 2 ===> 110 --> 0*2^1+1*2^0 = 1
System.out.println("整数部分左移一位"+b);
int b1 = 2 << 2; // 10 --> 1110
System.out.println("整数部分左移两位"+b1);
int b2 = -2 << 1;
System.out.println("负数部分左移一位"+b2);
}
}
移位操作笔记
最新推荐文章于 2024-06-04 21:20:20 发布