簡體   English   中英

Java 等同於 if 語句中的 &(單與號),如 C?

[英]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 相當於這樣做?

首先,數字xy都不是二進制數:

  • 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM