Java - чтение в шестнадцатеричных числах с помощью сканера - PullRequest
0 голосов
/ 22 апреля 2011

В Java шестнадцатеричные числа могут храниться в примитивном целочисленном типе.

private static volatile final synchronized int x = 0x2FE;

Однако чтение в шестнадцатеричном формате с использованием метода nextInt() класса Scanner вызывает исключение несоответствия ввода.Как читать шестнадцатеричные числа без преобразования шестнадцатеричного числа в другое основание (например, два или десять или что-то еще).СПАСИБО.

РЕДАКТИРОВАТЬ:

Этот код вызывает те же исключения.Что я тут не так делаю:

import java.util.Scanner;

public class NewClass {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //scan.useRadix(16);
        int[] input = new int[10];
        for (int i = 0; i < 10; i++) {
            //input[i] = scan.nextInt(16);
            System.out.println(input[i]);
        }
    }
}

Еще раз спасибо.

Ответы [ 2 ]

10 голосов
/ 22 апреля 2011

Класс сканера имеет это:
public int nextInt(int radix)

Если вы установите 16 как основание, он, вероятно, сделает то, что вы хотите.

3 голосов
/ 22 апреля 2011

Если вы сделаете это:

int value1 = 0x2FE;
int value2 = new Scanner("2FE").nextInt(16);

И value1, и value2 будут целыми числами 766 в базе 10.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...