我找到了一种使用强制转换从十六进制转换为十进制的练习,但是我不知道它是如何decimal + 'A' - 10
工作的。有人可以向我解释吗?
代码在这里:
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Please enter a decimal value (0-15):");
int decimal = input.nextInt();
if (decimal <= 9 && decimal >= 0) {
System.out.println("The hex value is: " + decimal);
}
else if (decimal >= 10 && decimal <= 15) {
System.out.println("The hex value is " + (char)(decimal + 'A' - 10));
}
else {
System.out.println("It's an invalid input.");
}
}
}
谢谢。
Unicode中的字母字符具有顺序代码:
A = 65 B = 66 C = 67 D = 68 ...
因此,的值(char)('A'+1)
与相同'B'
,因为在算术表达式中使用该char
值'A'
时,该值被解释为65,然后+1使其变为66,然后再次将其转换为char,即为'B'
。
因此,您所拥有的就是'A'
+decimal
与10之间的差值(即0到5)。这会给你的价值观'A' + 0
,'A' + 1
,'A' + 2
等,这些手段'A'
,'B'
,'C'
分别当你计算。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句