當前位置:首頁 » 編程語言 » java按位或

java按位或

發布時間: 2022-09-22 03:40:33

java 按位運算

你的這個設計有問題。

位運算來進行邏輯判斷,其實就是用數字的二進制各位來做標志。通過位運算,進行許可權的組合和拆分。

這樣有個基礎:就是每個許可權的值正好要是二進制位的對應值。
許可權可以取的數就是二進制的進度值。如:1,2,4,8,16,32……(不超過數字表達范圍)。

看你的題目: 3是發帖,4是刪帖。要用二進制來做掩碼計算。設計不科學。

兩個方法:
1 建議使用1,2,4,8……來定義的你的許可權。
如果改成:4是發帖,8是刪帖
long power=4|8;
判斷是否有發帖許可權:power&4 >0

2 如果一定要用1,2,3,4來定義,那麼要做進制操作。
long power=(1<<(3-1))|(1<<(4-1));
判斷是否有發帖許可權:(power&(1<<(3-1))) > 0

註:如果上面都不減去1,也行,就浪費一個位置。

Ⅱ JAVA里或的符號是什麼

||

例如:
if(a == 1 || b == 2)
表示a的值為1或者b的值為2都成立

Ⅲ Java中「按位或」和「按位與」怎麼計算啊以4|5、4&5為例你給我講講可以嗎謝謝了!

將十進制數字轉化成二進制,再分別按位與(或)
與:1 1相與為1 、 0與任何數字相與為0
或:1 1相或為1 、1與任何數字相或為1

Ⅳ java中的「&」、「|」、「^」、「~」運算符怎麼用

|是按位或

^是按位抑或

&是按位與

比如有兩個數

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

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

Ⅳ java中按位異或與邏輯異或的區別

邏輯沒有異或運算。

位異或指:異或運算^,異或運算它都是以二進制數據為基礎進行運算,1^1=00^0=11^0=10^1=1

Ⅵ JAVA中按位異或是什麼意思 不太理解,請指教,謝謝!

異或運算沒有聽過,不過位與運算就有,它的原理是:先把十進制(或N進制)轉換成二進制,再分別同位進行與運算,比如:
12&5(java中位與運算是用&符號表示的)
即:12
=
11000
&
5
=
01001
--------------------
=
11001
位異或運算或許是把它們進行異或吧。
PS樓下不能這么說,有些演算法還得用到這些位操作,用得妙的還真叫人拍案叫絕

Ⅶ JAVA中四個二進制位從操作符即(&按位與、|按位貨、^按位異或、~按位取反)

首先回答你問的問題:
按位與運算符(&)
參加運算的兩個數據,按二進制位進行「與」運算。

運算規則:0&0=0; 0&1=0; 1&0=0; 1&1=1;

即:兩位同時為「1」,結果才為「1」,否則為0

例如:3&5 即 0000 0011 & 0000 0101 = 0000 0001 因此,3&5的值得1。

另,負數按補碼形式參加按位與運算。

「與運算」的特殊用途:

(1)清零。如果想將一個單元清零,即使其全部二進制位為0,只要與一個各位都為零的數值相與,結果為零。

(2)取一個數中指定位

方法:找一個數,對應X要取的位,該數的對應位為1,其餘位為零,此數與X進行「與運算」可以得到X中的指定位。

例:設X=10101110,

取X的低4位,用 X & 0000 1111 = 0000 1110 即可得到;

還可用來取X的2、4、6位。

按位或運算符(|)
參加運算的兩個對象,按二進制位進行「或」運算。

運算規則:0|0=0; 0|1=1; 1|0=1; 1|1=1;

即 :參加運算的兩個對象只要有一個為1,其值為1。

例如:3|5 即 0000 0011 | 0000 0101 = 0000 0111 因此,3|5的值得7。

另,負數按補碼形式參加按位或運算。

「或運算」特殊作用:

(1)常用來對一個數據的某些位置1。

方法:找到一個數,對應X要置1的位,該數的對應位為1,其餘位為零。此數與X相或可使X中的某些位置1。

例:將X=10100000的低4位置1 ,用 X | 0000 1111 = 1010 1111即可得到。

異或運算符(^)
參加運算的兩個數據,按二進制位進行「異或」運算。

運算規則:0^0=0; 0^1=1; 1^0=1; 1^1=0;

即:參加運算的兩個對象,如果兩個相應位為「異」(值不同),則該位結果為1,否則為0。

「異或運算」的特殊作用:

(1)使特定位翻轉找一個數,對應X要翻轉的各位,該數的對應位為1,其餘位為零,此數與X對應位異或即可。

例:X=10101110,使X低4位翻轉,用X ^ 0000 1111 = 1010 0001即可得到。

(2)與0相異或,保留原值 ,X ^ 0000 0000 = 1010 1110。

從上面的例題可以清楚的看到這一點。

取反運算符(~)
參加運算的一個數據,按二進制位進行「取反」運算。

運算規則:~1=0; ~0=1;

即:對一個二進制數按位取反,即將0變1,1變0。

使一個數的最低位為零,可以表示為:a&~1。

~1的值為1111111111111110,再按「與」運算,最低位一定為0。因為「~」運算符的優先順序比算術運算符、關系運算符、邏輯運算符和其他運算符都高。

然後在附送你兩個為運算符的解釋:
左移運算符(<<)
將一個運算對象的各二進制位全部左移若干位(左邊的二進制位丟棄,右邊補0)。

例:a = a << 2 將a的二進制位左移2位,右補0,

左移1位後a = a * 2;
若左移時舍棄的高位不包含1,則每左移一位,相當於該數乘以2。

右移運算符(>>)
將一個數的各二進制位全部右移若干位,正數左補0,負數左補1,右邊丟棄。

操作數每右移一位,相當於該數除以2。

例如:a = a >> 2 將a的二進制位右移2位,

左補0 or 補1 得看被移數是正還是負。

如果還有什麼疑問,可以參考一下參考資料

希望我的回答對您有幫助,別忘了採納答案哦~

Ⅷ JAVA中&&和&、||和|的區別

「1、Java中&叫做按位與,&&叫做短路與,它們的區別是: &
既是位運算符又是邏輯運算符,&的兩側可以是int,也可以是boolean表達式,當&兩側是int時,要先把運算符兩側的數轉化為二進制數再進行運算,而短路與(&&)的兩側要求必須是布爾表達式。舉例如下:
12&5 的值是多少...」

熱點內容
收件伺服器有什麼作用 發布:2025-01-10 21:50:01 瀏覽:387
安卓70緩存 發布:2025-01-10 21:49:03 瀏覽:680
圖像檢索演算法 發布:2025-01-10 21:43:58 瀏覽:555
plsqlforupdate 發布:2025-01-10 21:43:50 瀏覽:913
如何設置健康碼快捷方式vivo安卓 發布:2025-01-10 21:39:52 瀏覽:500
安卓不兼容怎麼解決 發布:2025-01-10 21:37:02 瀏覽:29
linux字體大小 發布:2025-01-10 21:36:21 瀏覽:492
安卓手機的音量在哪裡調 發布:2025-01-10 21:32:11 瀏覽:613
路由器怎麼設置登錄密碼怎麼設置密碼 發布:2025-01-10 21:11:12 瀏覽:893
營運車解壓 發布:2025-01-10 21:11:01 瀏覽:932