亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問一下在java 代碼(state & states) != 0是什么意思,有知道的嗎?

請問一下在java 代碼(state & states) != 0是什么意思,有知道的嗎?

猛跑小豬 2021-10-26 19:18:23
java 代碼(state & states) != 0什么意思,給解釋一下
查看完整描述

2 回答

?
幕布斯6054654

TA貢獻1876條經驗 獲得超7個贊

就是與運算

在編程語言里

與運算,兩個全是1,結果才是1


1 & 1 = 11 & 0 = 00 & 0 = 00 & 1 = 0

附:或運算,有一個是1,結果就是1


1 | 1 = 11 | 0 = 10 | 0 = 00 | 1 = 1

你可以寫個例子,看看結果


public class $ {     public static void main(String[] args) {        int states = 1;        int state = 1;        if ((state & states) != 0) {            System.out.println("a");        }    }}


查看完整回答
反對 回復 2021-10-31
?
拉莫斯之舞

TA貢獻1820條經驗 獲得超10個贊

&是按位與運算,也就是對state和states的每一個二進制位進行與運算。像5&3就是(101)&(011)=(001),也就是5&3=1。運算規則就如@xiaojianhx所述。
而(state & states) != 0的意思嘛,按字面上來理解就是:state表示某一個狀態,而states表示一組狀態,(state & states) != 0就是檢查states有沒有包含state這一狀態。
原理也簡單,假如states可以包含3個這樣的狀態(長度為3位),現在states包含了兩個狀態,值為(101),而state表示的狀態的值為(001),state & states=(101)&(001)=(001),(001)!=0,所以states包含了state這一狀態。但如果states=(100),說明states只包含一個狀態,而state 仍然是(001),那么state & states=(100)&(001)=(000),(000)==0,所以states就不包含state這一狀態了。
如果要往states添加state狀態的話可以這么做:states=states|state;
這只是一種理解。一般代碼中也會常用到這種方法的。


查看完整回答
反對 回復 2021-10-31
  • 2 回答
  • 0 關注
  • 452 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號