该程序从十六进制转换为二进制。 这是我的计划:
public static void main(String[] args) throws IOException {
int nh = 0, k = 0, j = 0, w = 0, z = 0, lun = 0, r;
String line;
String nb = null;
char nhc = 0;
BufferedReader tastiera = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Inserire il numero in esadecimale");
line = tastiera.readLine();
lun = line.length();
System.out.println(line);
if (lun > 1) {
lun--;
}
for (z = lun; z > 0; z--)
nhc = line.charAt(z);
{
if (nhc == 'a' || nhc == 'A') {
nhc = 10;
}
if (nhc == 'b' || nhc == 'B') {
nhc = 11;
}
if (nhc == 'c' || nhc == 'C') {
nhc = 12;
}
if (nhc == 'd' || nhc == 'D') {
nhc = 13;
}
if (nhc == 'e' || nhc == 'E') {
nhc = 14;
}
if (nhc == 'f' || nhc == 'F') {
nhc = 15;
}
for (k = nhc, w = 0; k > 0 && w < lun * 4; k = k / 2, w++) {
nb.charAt(w) = k % 2;
}
}
System.out.println("Il numero binario è " + nb);
}
当我跑步时出现:
Inserire il numero in esadecimale
12
12
线程中的异常&#34; main&#34; java.lang.RuntimeException:无法编译的源代码 - 意外类型 必需:变量 发现:价值 在esadecimale.binario.EsadecimaleBinario.main(EsadecimaleBinario.java:56) Java结果:1 建立成功(总时间:6秒)
答案 0 :(得分:0)
您无法执行此任务:nb.charAt(w)= k%2;
这是左侧的值(chartAt(index)返回一个字符)并且无法分配给它。这就是运行时发生的事情......
检查answer。希望它有意义。