[英]Java equivalent of & (single ampersand) in if statement, like in C?
因此,在學習了 C 和 Java 之后,Java 不具備在兩個值之間的 if 語句中按位與運算的能力。
int x = 1011;
int y = 0110;
// 0010
if (x % y) {
printf("EXAMPLE")
}
我知道我錯過了什么。 我認為這是因為我真的不知道 if 條件中發生了什么,以及什么會使它為真或為假。 是否有 Java 相當於這樣做?
首先,數字x
和y
都不是二進制數:
int x = 1011; // decimal 1011
int y = 0110; // octal, equivalent of 8 + 64 = 72
二進制值必須使用0b
前綴:
int x = 0b1011; // decimal 11
int y = 0b0110; // decimal 6
其次, (x % y)
不是按位結尾,它是x
除以y
的余數。 按位與是&
。 對於 C 和 Java 都是如此。
第三,如果按位與的結果應該為true
,只要比較它的結果不等於0,就使得代碼等價於C。
因此,生成的代碼應如下所示:
int x = 0b1011; // decimal 11
int y = 0b0110; // decimal 6
if ((x & y) != 0) {
System.out.println("EXAMPLE");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.