算術左移運算符java
按二進制形式把全部的數字向左移動對應的位數,高位移出(捨棄),低位的空位補零。ide
語法格式:
須要移位的數字 << 移位的次數
例如: 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; } }
測試結果spa
////////////算術左移位 - 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次方