Java之移位运算符
生活随笔
收集整理的這篇文章主要介紹了
Java之移位运算符
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天寫代碼忽然遇到了 << 和 >> ;感覺是那么的似曾相識 但卻不知道是干什么用的,
今天記錄一下(直接上代碼):
左移運算符
public static void main(String[] args) throws ParseException {//左移運算符 <<int num1=2;int num2 =num1<<num1;// 公式:需要平移的數 << 平移的位數 表示2的二進制 向左移兩位 由 0010 變為1000 直接在后面補兩個0System.out.println(num1+" "+num2);//toBinaryString方法:把十進制轉為二進制System.out.println(Integer.toBinaryString(num1)+" "+(Integer.toBinaryString(num2)));}右移運算符
在用右移運算符時,發現一個問題 如果二進制末尾
是1會怎么樣:
經過測試發現,這個右移就是直接是把最后兩位直接砍掉。
----------------------------7.18----------------------------
今天來補充一點左移運算符的使用技巧
用<< 來表示 2^n 2的n次方 直接上代碼
原理解析
拿1 << 3 =8為例
1的二級制為0001;
左移三位為1000;
二級制 1000 轉化為十進制:1×2^3 + 0×2^2 + 0×2^1 + 0×2^0 = 1×2^3 + 0 + 0 + 0 = 8;
再比如1 << 5 =32為例
1的二級制為0001;
左移五位為100000;
二級制 100000 轉化為十進制:1×2^5 + 0×2^4 + 0×2^3 + 0×2^2 + 0×2^1 + 0×2^0= 1×2^5 + 0 + 0 + 0 + 0 + 0= 32;
所以得出
1 << n= 1×2^n + 0 + 0 +……=2 ^ n
今天的學習時光就到這里了!
總結
以上是生活随笔為你收集整理的Java之移位运算符的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Pico Neo3 VR Pro 开发新
- 下一篇: Java程序员面试常见问题