Сайт работает в тестовом режиме - все замечания, предложения и информацию о найденных ошибках направляйте, пожалуйста, в Telegram-группу
Курс в процессе наполнения. Полный курс доступен на Степике

Баг: Путаница между `Atoi` и `ParseInt` для не-десятичных систем

Что делают:
Пытаются распарсить шестнадцатеричное число "ff" с помощью strconv.Atoi("ff"). Получают ошибку.

Почему:
Atoi работает только для десятичных чисел (основание 10). Он не принимает префиксы 0x или буквы a-f.

Как правильно:
Использовать strconv.ParseInt с указанием основания:

num, err := strconv.ParseInt("ff", 16, 64)  // вернёт 255

Дополнительно:
Для восьмеричных чисел основание 8, для двоичных - 2. Если передать основание 0, ParseInt сам определит по префиксам: 0x → 16, 0 → 8, иначе 10.

Загрузка...