Ваша проблема в том, что у вас нет кавычек, окружающих 1
и 0
.
for (int i = 0; i < n; i++) {
if (nums[i]) {
digits[i] = '1';
}
else {
digits[i] = '0';
}
}
Без кавычек они разыгрываются от int
с до char
с. 0 на самом деле нулевой символ (NUL
), а 1 - начало заголовка или что-то в этом роде. Java символы кодируются с использованием UTF-16 (их длина 16 бит). Символы '0' и '1' фактически кодируются 48 и 49 соответственно (в десятичном формате).
РЕДАКТИРОВАТЬ: На самом деле, не смотрите на таблицу ASCII, посмотрите на набор символов Unicode . Unicode - это действительно расширенный набор ASCII, но он, вероятно, будет более полезным, чем таблица ascii