の内側を使用して、私はif文Cではビット単位&if文
if (firstInt & 1)
を書くことができますが、私はJavaで同じことをしようとして行うときに、コンパイラは、「互換性のない型」私に語ったと私は言いますint
の代わりにboolean
が必要です。そのCコードをJavaで記述する方法はありますか?
の内側を使用して、私はif文Cではビット単位&if文
if (firstInt & 1)
を書くことができますが、私はJavaで同じことをしようとして行うときに、コンパイラは、「互換性のない型」私に語ったと私は言いますint
の代わりにboolean
が必要です。そのCコードをJavaで記述する方法はありますか?
、次のいずれかのあなたのために働く必要があります。整数式は、ゼロが偽のブール式(私はそれが悪い考えであることを主張するだろうが)、として暗黙的に使用することができますCで
if ((firstInt & 1) != 0)
if ((firstInt & 1) > 0)
if ((firstInt & 1) == 1)
+1。 '(firstInt&1)== 1'も行うことができます。 –
訂正のために括弧(私が追加したもの)が必要であることに注意してください。 Javaでは、比較演算子はバイナリのビット演算子よりも緊密にバインドされています。 – Taymon
ありがとうございました。私はそれができるようになるとすぐにあなたの答えを受け入れるでしょう。 – user1310650
ゼロ以外の値がtrueの場合
Javaでは許可されていないので、整数演算子を比較演算子を使用して他の整数値または式と比較することで、式を明示的に真偽にする必要があります。
これがC/C++で動作する理由は、言語が暗黙的に結果をゼロと比較することで条件内の式を解釈することです。 Javaはこの点で非常に厳しく、条件文でブール式を必要とします。 – dasblinkenlight
これは暗黙的なことではありません。 Cはboolean型でもありません。 – Taymon
@Taymon Cはboolean型 '_Bool'を持ち、' stool'のマクロ 'bool'を' _Bool'に展開します – ouah