これは私がC++で書いた関数であり(動作します)、現在Javaに変換しようとしています:
static String parseAInstruction(String line) {
int n = getValue(line);
if (n>=0) {
String inst = "0";
for (int i=14; i>=0; --i) {
if (Math.pow(2, i) & n)
inst += "1";
else
inst += "0";
}
return inst;
} else {
return "error";
}
}
これは C++ では問題なくコンパイルされますが、Java でコンパイルしようとすると、次のエラーが発生します。
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Type mismatch: cannot convert from int to boolean
at parser.Parser.parseAInstruction(Parser.java:38)
at parser.Parser.main(Parser.java:50)
Javaでビット単位のANDを調べると、同じはずのようです。ブール値とはまったく関係ありません。誰でも問題を教えてもらえますか?