标签:java 移位运算符
算术左移运算符
按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。
语法格式:
需要移位的数字 << 移位的次数
例如: 3 << 2,则是将数字3左移2位
package com.zzwx.test.shifting;
public class Main {
public static void main(String[] args) {
for (int p = 1; p < 4; 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 << n));
}
System.out.println("////////////算术左移位 - " + p + "/////////////");
}
System.out.println("算术左移位 ------> p << n = p * 2");
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 < shift; 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 << n = p * 2 的n次方
标签:java 移位运算符
原文地址:http://10960988.blog.51cto.com/10950988/1793356