Java移位运算符原来这么简单
生活随笔
收集整理的這篇文章主要介紹了
Java移位运算符原来这么简单
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 搞清楚Java移位運算符(<<;>>;>>>)
- 詳情請參考文檔:
搞清楚Java移位運算符(<<;>>;>>>)
敲黑板
<<:左移運算符,num << 1,相當于num乘以2 >>:右移運算符,num >> 1,相當于num除以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 --------1010 十進制:10 原始數 number 10100 十進制:20 左移一位 number = number << 1;1010 十進制:10 右移一位 number = number >> 1;對于:>>>
無符號右移,忽略符號位,空位都以0補齊, value >>> num – num 指定要移位值value 移動的位數。
無符號右移的規則只記住一點:忽略了符號位擴展,0補最高位 無符號右移運算符>>> 只是對32位和64位的值有意義
如果你沒有窮舉所有的情況,就以為上面的結論是正確的,那么我們認為你還是太年輕!
詳情請參考文檔:
官方Java-API 英文版
區別
end
總結
以上是生活随笔為你收集整理的Java移位运算符原来这么简单的全部內容,希望文章能夠幫你解決所遇到的問題。