算术左移运算符

>>运算规则:按二进制形式把所有的数字向右移动对应巍峨位数,低位移出(舍弃),高位的空位补符号位,即正数补零,负数补1.
  语法格式:

  需要移位的数字 >> 移位的次数

package com.zzwx.test.shifting;public class MainRight {	public static void main(String[] args) {		for (int p = 50; p < 55; p++) {			System.out.println("算术右移位 - " + p + "/");			for (int n = 1; n <= 4; n++) {				System.out.println("需要移位的数字 : " + p + " \t 转换二进制 : "						+ toBinaryString(p) + " \t 移位量 : " + n						+ " \t 移位后的二进制 : "						+ shiftToBinaryRight(toBinaryString(p), n)						+ " \t value : " + (p >> n));			}			System.out.println("算术右移位 - " + p + "/");		}		System.out				.println("算术右移位 ------>    p >> n = [p / 2的n次方 >= 1 --> 取整]  || [p / 2的n次方 < 1 --> 0]");	}	/**	 * 获取当前数字的二进制	 * 	 * @param num	 *            int数字	 * @return 二进制字符	 */	public static String toBinaryString(int num) {		return Integer.toBinaryString(num);	}	/**	 * 通过移位量获取移位后的二进制	 * 	 * @param binaryStr	 *            需要移位的二进制	 * @param shift	 *            偏移量	 * @return 移位后的二进制	 */	public static String shiftToBinaryRight(String binaryStr, int shift) {		binaryStr = binaryStr.substring(0, binaryStr.length() - shift) +"."+				binaryStr.substring(binaryStr.length() - shift, binaryStr.length());				return binaryStr;	}}

测试结果

算术右移位 - 50/需要移位的数字 : 50 	 转换二进制 : 110010 	 移位量 : 1 	 移位后的二进制 : 11001.0 	 value : 25需要移位的数字 : 50 	 转换二进制 : 110010 	 移位量 : 2 	 移位后的二进制 : 1100.10 	 value : 12需要移位的数字 : 50 	 转换二进制 : 110010 	 移位量 : 3 	 移位后的二进制 : 110.010 	 value : 6需要移位的数字 : 50 	 转换二进制 : 110010 	 移位量 : 4 	 移位后的二进制 : 11.0010 	 value : 3算术右移位 - 50/算术右移位 - 51/需要移位的数字 : 51 	 转换二进制 : 110011 	 移位量 : 1 	 移位后的二进制 : 11001.1 	 value : 25需要移位的数字 : 51 	 转换二进制 : 110011 	 移位量 : 2 	 移位后的二进制 : 1100.11 	 value : 12需要移位的数字 : 51 	 转换二进制 : 110011 	 移位量 : 3 	 移位后的二进制 : 110.011 	 value : 6需要移位的数字 : 51 	 转换二进制 : 110011 	 移位量 : 4 	 移位后的二进制 : 11.0011 	 value : 3算术右移位 - 51/算术右移位 - 52/需要移位的数字 : 52 	 转换二进制 : 110100 	 移位量 : 1 	 移位后的二进制 : 11010.0 	 value : 26需要移位的数字 : 52 	 转换二进制 : 110100 	 移位量 : 2 	 移位后的二进制 : 1101.00 	 value : 13需要移位的数字 : 52 	 转换二进制 : 110100 	 移位量 : 3 	 移位后的二进制 : 110.100 	 value : 6需要移位的数字 : 52 	 转换二进制 : 110100 	 移位量 : 4 	 移位后的二进制 : 11.0100 	 value : 3算术右移位 - 52/算术右移位 - 53/需要移位的数字 : 53 	 转换二进制 : 110101 	 移位量 : 1 	 移位后的二进制 : 11010.1 	 value : 26需要移位的数字 : 53 	 转换二进制 : 110101 	 移位量 : 2 	 移位后的二进制 : 1101.01 	 value : 13需要移位的数字 : 53 	 转换二进制 : 110101 	 移位量 : 3 	 移位后的二进制 : 110.101 	 value : 6需要移位的数字 : 53 	 转换二进制 : 110101 	 移位量 : 4 	 移位后的二进制 : 11.0101 	 value : 3算术右移位 - 53/算术右移位 - 54/需要移位的数字 : 54 	 转换二进制 : 110110 	 移位量 : 1 	 移位后的二进制 : 11011.0 	 value : 27需要移位的数字 : 54 	 转换二进制 : 110110 	 移位量 : 2 	 移位后的二进制 : 1101.10 	 value : 13需要移位的数字 : 54 	 转换二进制 : 110110 	 移位量 : 3 	 移位后的二进制 : 110.110 	 value : 6需要移位的数字 : 54 	 转换二进制 : 110110 	 移位量 : 4 	 移位后的二进制 : 11.0110 	 value : 3算术右移位 - 54/算术右移位 ------>    p >> n = [p / 2的n次方 >= 1 --> 取整]  || [p / 2的n次方 < 1 --> 0]