asi je to blbej dotaz ale s javou teprve začínam. Mam tady program kterej načte 2 znaky, který znamenaj hexadecimalni hodnotu a pak je převede na dekadickou hodnotu. Ale nemůžu pochopit co znamená
i1 = (int) c1 - (int)'0';
i1 = (int) c1 - (int)'A' + 10;
chápu že se to přetypuje ale nevim proč se od toho pak odečítá (int)'0', resp. (int)'A' + 10;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int i1, i2;
System.out.print("Zadejte najednou dva znaky (0-9 nebo A-F): ");
String s = sc.nextLine();
char c1 = s.charAt(0);
char c2 = s.charAt(1);
if (c1 >= '0' && c1 <= '9') {
i1 = (int) c1 - (int)'0';
}
else {
if (c1 >= 'A' && c1 <= 'F') {
i1 = (int) c1 - (int)'A' + 10;
}
else {
System.out.println("Cislo mimo rozsah: " + c1);
return;
}
}