算术左移运算符
按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。
语法格式:需要移位的数字 << 移位的次数例如: 3 << 2,则是将数字3左移2位package com.zzwx.test.shifting;
public class Main {
public static void main(String[] args) {
for (int p = 1; p
System.out.println("算术左移位 - " + p + "/");
for (int n = 1; n <= 4; n++) {
System.out.println("需要移位的数字 : " + p + " \t 转换二进制 : "
+ toBinaryString(p) + " \t 移位量 : " + n
+ " \t 移位后的二进制 : "
+ shiftToBinaryLeft(toBinaryString(p), n)
+ " \t value : " + (p <
}
System.out.println("算术左移位 - " + p + "/");
}
System.out.println("算术左移位 ------> p <
System.out.println("\n\n\n");
}
/**
* 获取当前数字的二进制
*
* @param num
* int数字
* @return 二进制字符
*/
public static String toBinaryString(int num) {
return Integer.toBinaryString(num);
}
/**
* 通过移位量获取移位后的二进制
*
* @param binaryStr
* 需要移位的二进制
* @param shift
* 偏移量
* @return 移位后的二进制
*/
public static String shiftToBinaryLeft(String binaryStr, int shift) {
for (int i = 0; i
binaryStr += "0";
}
return binaryStr;
}
}
测试结果算术左移位 - 1/
需要移位的数字 : 1 转换二进制 : 1 移位量 : 1 移位后的二进制 : 10 value : 2
需要移位的数字 : 1 转换二进制 : 1 移位量 : 2 移位后的二进制 : 100 value : 4
需要移位的数字 : 1 转换二进制 : 1 移位量 : 3 移位后的二进制 : 1000 value : 8
需要移位的数字 : 1 转换二进制 : 1 移位量 : 4 移位后的二进制 : 10000 value : 16
算术左移位 - 1/
算术左移位 - 2/
需要移位的数字 : 2 转换二进制 : 10 移位量 : 1 移位后的二进制 : 100 value : 4
需要移位的数字 : 2 转换二进制 : 10 移位量 : 2 移位后的二进制 : 1000 value : 8
需要移位的数字 : 2 转换二进制 : 10 移位量 : 3 移位后的二进制 : 10000 value : 16
需要移位的数字 : 2 转换二进制 : 10 移位量 : 4 移位后的二进制 : 100000 value : 32
算术左移位 - 2/
算术左移位 - 3/
需要移位的数字 : 3 转换二进制 : 11 移位量 : 1 移位后的二进制 : 110 value : 6
需要移位的数字 : 3 转换二进制 : 11 移位量 : 2 移位后的二进制 : 1100 value : 12
需要移位的数字 : 3 转换二进制 : 11 移位量 : 3 移位后的二进制 : 11000 value : 24
需要移位的数字 : 3 转换二进制 : 11 移位量 : 4 移位后的二进制 : 110000 value : 48
算术左移位 - 3/
算术左移位 ------> p <