Что такое параметр radix в Java и как он работает? - программирование
Подтвердить что ты не робот

Что такое параметр radix в Java и как он работает?

Я понимаю, что radix для функции Integer.parseInt() является базой для преобразования строки в. Не следует, чтобы 11 базовых 10, преобразованных с основанием/основанием 16, были B вместо 17?

Следующий код печатает 17 в соответствии с учебником:

public class Test {
  public static void main(String[] args) {
    System.out.println( Integer.parseInt("11", 16) );
  }
}
4b9b3361

Ответ 1

Когда вы выполняете операцию ParseInt с помощью radix, 11 base 16 анализируется как 17, что является простым значением. Затем он печатается как radix 10.

Вы хотите:

System.out.println(Integer.toString(11, 16));

Это принимает десятичное значение 11 (не имея базы в данный момент, например, наличие "одиннадцати" арбузов (на один больше, чем количество пальцев у человека)) и печатает его с помощью radix 16, в результате чего B.

Когда мы берем значение int, оно хранится в качестве базы 2 в физической памяти компьютера (почти во всех случаях), но это не имеет значения, поскольку преобразования синтаксического анализа и преобразования строки работают с произвольным значением radix (по умолчанию 10).

Ответ 2

Фактически он принимает 11 в шестнадцатеричном виде и преобразует его в десятичный. Например, если у вас был тот же код, но с "A" в строке, он выводил бы 10.

Ответ 3

Здесь

public class Test {
      public static void main(String[] args) {
      System.out.println(Integer.parseInt("11", 16));
    }
}

11 - это 16 и должен быть преобразован в десятичный десятичный код.

 So, integer of (11)16 = 1*16^1 +1*16^0 = 16+1 = 17

Ответ 4

Функция действует в обратном направлении, как вы думаете. Вы конвертируете "11" в основание 16 в основание 10, поэтому результат равен 17.

Ответ 5

Для преобразования из базы 10 в базовую 16 используйте

System.out.println(Integer.toString(11, 16));

Выход будет равен b.