java中關(guān)于移位運(yùn)算符的demo與總結(jié)(推薦)
首先,移位運(yùn)算符有三種,其操作類型只支持:byte / short / char / int和long五種。
<< 左移運(yùn)算符,表示將左邊的操作數(shù)的二進(jìn)制數(shù)據(jù)向左移動*位,移動后空缺位以0填充,多余位舍棄。(等同于乘2的n次方)
>> 右移運(yùn)算符,二進(jìn)制數(shù)據(jù)向右移動*位,就在其二進(jìn)制數(shù)據(jù)后抹掉幾位?(這里還不錯定,但個人理解是這樣的)(等同于除2的n次方)
>>> 無符號右移運(yùn)算符,不管移動前最高位是0還是1,右移后左側(cè)產(chǎn)生的空位部分都以0來填充。
下面我們借一個demo幫助理解:
public static void main(String[] args){ int a = 16; int b = a << 2;//左移2,等同于16 * 2的2次方,也就是16 * 4 int c = a >> 2;//右移2,等同于16 / 2的2次方,也就是16 / 4 System.out.println("a的二進(jìn)制數(shù)據(jù)為:" + Integer.toBinaryString(a)); System.out.println("a左移后二進(jìn)制數(shù)據(jù)為:" + Integer.toBinaryString(b)); System.out.println("a右移后二進(jìn)制數(shù)據(jù)為:" + Integer.toBinaryString(c)); System.out.println("a左移后的值為:" + b); System.out.println("a右移后的值為:" + c); } }
查看運(yùn)行結(jié)果,如圖所示:
首先,16的二進(jìn)制數(shù)據(jù)為:10000;
左移兩位,10000變成1000000;
右移兩位,10000變成100;
把得到的二進(jìn)制數(shù)據(jù)轉(zhuǎn)換成普通數(shù)據(jù)后,
a左移后的值為64,既16 * 2的2次方(16 * 4)。
a右移后的值為4,既16 / 2的2次方(16 / 4)。
看完這個demo再理解移位運(yùn)算符是不是就簡單很多?
以上這篇java中關(guān)于移位運(yùn)算符的demo與總結(jié)(推薦)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
ZooKeeper框架教程Curator分布式鎖實現(xiàn)及源碼分析
本文是ZooKeeper入門系列教程,本篇為大家介紹zookeeper一個優(yōu)秀的框架Curator,提供了各種分布式協(xié)調(diào)的服務(wù),Curator中有著更為標(biāo)準(zhǔn)、規(guī)范的分布式鎖實現(xiàn)2022-01-01redis redisson 限流器的實例(RRateLimiter)
這篇文章主要介紹了redis redisson 限流器的實例(RRateLimiter),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07java實現(xiàn)Excel的導(dǎo)入導(dǎo)出
這篇文章主要為大家詳細(xì)介紹了java實現(xiàn)Excel的導(dǎo)入導(dǎo)出,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-06-06JPA?通過Specification如何實現(xiàn)復(fù)雜查詢
這篇文章主要介紹了JPA?通過Specification如何實現(xiàn)復(fù)雜查詢,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11