java位運算子《和》還有》怎麼用

2021-03-19 18:19:11 字數 3045 閱讀 9679

1樓:匿名使用者

int i = 2; // 二進位制00000010

int n = i<<3; // 左移 n=i*2*2*2;

>>> 無符號右移位,高位永遠填0

2樓:king炬

左移<<

右移》 和》

二進位制的數,其中,對於》無論整數還是負數,最高位都補0就這個區別而已,

還有一個結論是移動了n就相當於左移(乘)、右移(除)2的n次冪比如:16>>3等效於16除2的3次方,

java裡面的位運算子>>,<<,>>>是什麼意思,請舉個列子具體說明一下?

3樓:匿名使用者

java 中:

>>帶符號右移 (n>>2 將整型值帶符號右移2位 )

《帶符號左移 (n<<2 將整型值帶符號左移2位 )

>>>無符號右移 (n>>>2 將整型值無符號右移2位 ) 在32位系統中任何數左移(右移)32位還是它本身 例如:

4樓:匿名使用者

《時 a=64並不存在高位溢位問題 因為是0000 0000 0100 0000 /*64的2進位制數*/0000 0010 0000 0000 /*右移了2位以後的*/ a=256所以也可以乘以移動的位數

java中的「&」、「|」、「^」、「~」運算子怎麼用?

5樓:匿名使用者

||是按位

或^是按位抑或

&是按位與

比如有兩個數

int x = 5;

int y = 11;

system.out.println(x|y);

system.out.println(x&y);

system.out.println(x^y);

結果是15, 1 ,14

過程x=5  (0101二進位制)

y=11(1011二進位制)

x|y = 1111 = 15

x&y = 0001 = 1

x^y = 1110 =14

這些操作一般用到的不多,只有在需要對數字的位進行操作的時候才用到。

6樓:匿名使用者

除了~其道它都是二元運算子

7樓:匿名使用者

針對二進位制的位來說的,除了~其它都是二元運算子,&是按位與|是按位或^是異或反~是按位取反。比如: 1110

& 0001

-------------

0000

java中的「>>」和「>>>」運算子

8樓:匿名使用者

1、>>:右移運算子,num >> 1,相當於num除以2。

按二進位制形式把所有的數字向右移動對應位數,低位移出(捨棄),高位的空位補符號位,即正數補零,負數補1。符號位不變。

如:-1在32位二進位制中表示為:11111111 11111111 11111111 11111111,-1>>1:

按位右移,符號位不變,仍舊得到11111111 11111111 11111111 11111111,因此值仍為-1

2、>>>:二進位制右移補零操作符,左運算元的值按右運算元指定的位數右移,移動得到的空位以零填充,如value >>> num中,num指定要移位值value 移動的位數。

擴充套件資料

「>>」和「>>>」等移位運算子的運算規則:

1、無符號右移,忽略符號位,空位都以0補齊。

value >>>a,a是要移位值value 移動的位數。

無符號右移的規則只記住一點:忽略了符號位擴充套件,0補最高位  無符號右移運算子》 只是對32位和64位的值有意義。

2、右移位運算子》,若操作的值為正,則在高位插入0;若值為負,則在高位插入1。

右移補零操作符》,無論正負,都在高位插入0。

9樓:匿名使用者

計算機中的數都是二進位制表示的,以8位的byte型別表示為例,5可以表示為:00000101(最高位表示符號,0位正,1為負)

無論》還是》都是針對二進位制數進行操作的。

1、右移運算子》使指定值的所有位都右移規定的次數。右邊移出去的部分扔掉不要,左邊空出來的部分用原來的數字填充(這就是所謂的帶符號右移)

——比如說5,右移後為00000010。

——你給的例子,假設x=-12,表示為32位int型就是

11111111111111111111111111110100

x>>3即帶符號右移3位,結果是

11111111111111111111111111111101,化為十進位制等於-3

2、>>>與》唯一的不同是它無論原來的最左邊是什麼數,統統都用0填充。

——比如你的例子,byte是8位的,-1表示為byte型是11111111(補碼錶示法)

b>>>4就是無符號右移4位,即00001111,這樣結果就是15。

如果還有困惑,再提

10樓:匿名使用者

public class testrightmove}--------------------------------------------

執行上面的程式也許看的更清楚一些。

我們通常執行的系統是32位系統,java中執行》符號計算時,其實是對int變數在記憶體中的存放形式二進位制進行移位計算。

比如int a = 5;//00000101,其實在系統中是32位的,前面都是0,所有》2後就是1,而int e = -1;//11111111111111111111111111111111,首位是1,所有無論怎麼移動都是結果都是-1

11樓:百度使用者

2位樓上的都說全了,但我還想說明一點,在實際程式設計中java很少用這樣的符號。java本身是c派生出來的產物,保留了c的特點,但是實際上很少用作底層的開發(c的強項),可能一個java程式設計師做了很長一段時間的專案,也沒用過這東西,也沒必要把精力花在這個上。

C語言運算子是怎麼運算的,C語言運算子

是除法取餘運算。用於整數與整 數運算。否則,不同的編譯器會得不同結內果。為取餘運算子,容用於把它前面的整數值或表示式除以其後面的整數值或表示式,結果為不能被後面的整數或表示式整除的最小整數,它後面的數值應該為大於1的正整數。如 13 7 就表示13 除以7餘6。作為雙目運算子,左右運算元可以是數值,...

c語言運算子,C語言 運算子 是怎麼運算的

9 7 是 1.幾,舍位後不是鐵定是 1嗎?不是的,不能通過舍位來判定,不同的機器結果不同,可能是 1,也可能是 2 什麼叫向上取整 向下取整 向上取整指當計算的結果不為整數時取大於計算結果的整數,向下取整指當計算的結果不為整數時取小於計算結果的整數。當計算結果為整數時直接取整數。計算結果處於兩個整...

c語言運算子是怎麼運算的C語言運算子是怎麼運算的

c語言中 的作用 作為運算子是用來取餘的 運算子 operator 是可以對資料進行相應操作的符號。如對資料求和操作,用加法運算子 求積操作使用乘法運算子 求餘數用運算子 等等 例如 一 25 4 1 25除以4商6餘數是1 二 33 5 3 33除以5商6餘數是3 擴充套件資料 c語言常用的運算子...