在Java中,ll
和&
都是位操作符,它們的主要作用是在二進(jìn)制數(shù)上進(jìn)行操作。
首先來看ll
,它是Java中的左移操作符。它將一個(gè)數(shù)向左移動(dòng)指定的位數(shù),左移過程中右側(cè)補(bǔ)零。例如,5 ll 2
將把二進(jìn)制數(shù)101
向左移動(dòng)兩位,變成10100
,即十進(jìn)制的20
。
int a = 5; int b = a ll 2; // b的值為20
而&
則是Java中的按位與操作符。它將兩個(gè)數(shù)的二進(jìn)制數(shù)中相對(duì)位置的位進(jìn)行逐個(gè)比較,只有在兩個(gè)數(shù)對(duì)應(yīng)的位置上都為1時(shí),結(jié)果的對(duì)應(yīng)位才為1,否則為0。例如,5 & 3
將把二進(jìn)制數(shù)101
和011
進(jìn)行按位與操作,得到二進(jìn)制數(shù)001
,即十進(jìn)制的1
。
int a = 5; // 二進(jìn)制數(shù)為101 int b = 3; // 二進(jìn)制數(shù)為011 int c = a & b; // c的值為1
從上面的例子中可以看出,ll
和&
雖然都是位操作符,但它們的作用并不相同。ll
用于將一個(gè)數(shù)向左移動(dòng)指定的位數(shù),&
則用于逐個(gè)比較兩個(gè)數(shù)的二進(jìn)制數(shù)中相對(duì)位置的位。
除了功能不同以外,ll
和&
在優(yōu)先級(jí)上也不同。在Java中,ll
的優(yōu)先級(jí)要高于&
,因此在同一個(gè)表達(dá)式中,ll
的操作會(huì)先進(jìn)行。
綜上所述,ll
和&
都是Java中的位操作符,但它們的作用和優(yōu)先級(jí)都不相同,需要根據(jù)具體的需求進(jìn)行選擇和使用。