iT邦幫忙

0

Java請教

int c = (a << 1) & (b >> 2);

請問 a <<1 是什麼意思?
謝謝~

fillano iT邦超人 1 級 ‧ 2016-04-12 11:12:54 檢舉
不是吧XD

「&」是兩個位元都是「1」的時候,結果才是「1」,否則是「0」。

0b100100 & 0b101 相當於 0b100100 & 0b000101,結果是0b000100。如果是0b100100 & 0b000100,結果還是0b000100。

另外,0b100100是36,不是20。

1 個回答

0
fillano
iT邦超人 1 級 ‧ 2016-04-11 17:59:10
最佳解答
fillano iT邦超人 1 級 ‧ 2016-04-12 09:11:16 檢舉

http://pydoing.blogspot.tw/2010/10/java-bitwise.html中文參考

如果不想用位元來計算結果,可以把「<<n」想成乘以2的n次冪,也就是說,「<<1」當做乘以2的1次方,「<<2」當做乘以2的2次方等等。把乘以換成除以,就是「>>n」。

itjen iT邦新手 3 級 ‧ 2016-04-12 10:23:51 檢舉

我了解了 <<n 及 >>n 意思了. 謝謝您的解說~

最後想了解
int c = 20 & 5 = 100100 & 101 = 100 = 4
是否也可以視為 20/5=4 ??
謝謝各位大大的幫忙.

itjen iT邦新手 3 級 ‧ 2016-04-12 10:29:34 檢舉

int c = 20 & 5 <> 20/5....是不是不行?

我試作 int c = 2 & 2 = 10 & 10 = 10 =2 ??
而 2/2 =1

對嗎? 謝謝.

我要發表回答

立即登入回答