Java之移位运算符
生活随笔
收集整理的這篇文章主要介紹了
Java之移位运算符
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
今天寫代碼忽然遇到了 << 和 >> ;感覺是那么的似曾相識 但卻不知道是干什么用的,
今天記錄一下(直接上代碼):
左移運(yùn)算符
public static void main(String[] args) throws ParseException {//左移運(yùn)算符 <<int num1=2;int num2 =num1<<num1;// 公式:需要平移的數(shù) << 平移的位數(shù) 表示2的二進(jìn)制 向左移兩位 由 0010 變?yōu)?000 直接在后面補(bǔ)兩個0System.out.println(num1+" "+num2);//toBinaryString方法:把十進(jìn)制轉(zhuǎn)為二進(jìn)制System.out.println(Integer.toBinaryString(num1)+" "+(Integer.toBinaryString(num2)));}右移運(yùn)算符
在用右移運(yùn)算符時,發(fā)現(xiàn)一個問題 如果二進(jìn)制末尾
是1會怎么樣:
經(jīng)過測試發(fā)現(xiàn),這個右移就是直接是把最后兩位直接砍掉。
----------------------------7.18----------------------------
今天來補(bǔ)充一點(diǎn)左移運(yùn)算符的使用技巧
用<< 來表示 2^n 2的n次方 直接上代碼
原理解析
拿1 << 3 =8為例
1的二級制為0001;
左移三位為1000;
二級制 1000 轉(zhuǎn)化為十進(jìn)制: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 轉(zhuǎn)化為十進(jìn)制: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
今天的學(xué)習(xí)時光就到這里了!
總結(jié)
以上是生活随笔為你收集整理的Java之移位运算符的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Pico Neo3 VR Pro 开发新
- 下一篇: java美元兑换,(Java实现) 美元