这是我用 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查找,似乎应该是一样的。它根本不应该与布尔值有关。谁能告诉我这个问题?