public class Solution {
public static void main(String[] args) {
short number = 9;
// System.out.println(number);
char zero = '0';
// System.out.println(zero);
int nine = (zero + number);
System.out.println((char) nine);
}
}
Как так получилось, что nine = 57?
Никакие манипуляции с приведениями типов переменных number и zero изменений не дают, объясните кто то пожалуйста, максимально просто, насколько возможно, что происходит в этой программе?
Игорь Birt
24 уровень
!HELP! !HELP! !HELP! Как это объяснить себе?
Обсуждается
Комментарии (9)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
ivandenisov26@mail.ru
20 ноября 2020, 15:26
Вбей в google UTF-8, у каждого символа типа char есть числовое значение;
0
Nikita Strakhov
14 сентября 2020, 18:29

+2
Nikita Strakhov
14 сентября 2020, 18:29
Это должно многим открыть глаза))
0
Alexander Kornev
21 апреля 2020, 19:20
char zero = '0';
Обрати внимание, что 0 в одинарных кавычках, это не число, а символ.
char присваивается код символа '0' это 48.
48+9=57
+2
Игорь BirtExpert
21 апреля 2020, 19:23
Это не дает мне ответа на вторую часть загадки...(
0
Alexander Kornev
21 апреля 2020, 19:39
Какая вторая часть? Ты спросил, почему 57)
Если вопрос, почему в задаче выводится 9, то код 57 после приведения типов (char) соответствует символу '9'
+2
Игорь BirtExpert
21 апреля 2020, 20:10
Ладно, все равно спасибо))))
0
Vladislav Vitvitsky
21 апреля 2020, 19:20
если ты посмотришь таблицы сиволов то для char zero = '0'; символ 0 будет равен 48, в итоге 48+9=57
+1
Алексей Тонишев
22 августа 2020, 11:52
char это набор символов и у каждого своя позиция, при переводе в int символ преобразуется в позицию и наоборот
+1