java有三種移位運算子
>> : 運算子相當於對應運算子,除以右移運算2
>>> : 無符號右移,忽略符號位,空位都以0補齊
下面來看看這些移位運算都是怎樣使用的
/** * */ package com.b510.test; /** * @author Jone Hongten * @create date:2013-11-2 * @version 1.0 */ public class Test { public static void main(String[] args) { int number = 10; //原始数二进制 printInfo(number); number = number << 1; //左移一位 printInfo(number); number = number >> 1; //右移一位 printInfo(number); } /** * 输出一个int的二进制数 * @param num */ private static void printInfo(int num){ System.out.println(Integer.toBinaryString(num)); } }
1010 10100 1010
位数 -------- 十进制:10 原始数 number 十进制:20 左移一位 number = number << 1; 十进制:10 右移一位 number = number >> 1;
rrreee的結果對齊一下:
rrreee看了上面的demo,現在是不是對左移和右移了解了很多了呢
對於:>>>
無符號右移,忽略符號位,空位都以0補齊
value >>> num -- num 指定要移位值value 移動的位數。
無符號右移的規則只記住一點:忽略了符號位擴展,0補最高位 無符號右移運算子>>> 只是對32位和64位的值有意義
更多java中的移位運算子:>,>>>總結相關文章請注意PHP中文網!