Хранение шестнадцатеричных значений на карте .. Java? - PullRequest
1 голос
/ 01 марта 2011

В настоящее время я делаю это так ... но на самом деле оно хранится как целое число ... Как я могу это сделать?

commandMap = new HashMap ();
commandMap.put ("SET_DISPLAY", 0xD0);
commandMap.put ("READ_ADC", 0xD1);
commandMap.put ("GET_PARAM", 0xD2);
commandMap.put ("SET_PARAM", 0xD3);
commandMap.put ("GET_IOVALUE", 0xD4);
commandMap.put ("SET_IOVALUE", 0xD5);

Ответы [ 2 ]

8 голосов
/ 01 марта 2011

Десятичные, шестнадцатеричные, восьмеричные и т. Д. Являются просто обозначениями; то есть разные способы рендеринга целого числа в символах. Это не особые виды чисел.

Итак ...

commandMap = new HashMap(); 
commandMap.put("SET_DISPLAY", 0xD0);
int value = commandMap.get("SET_DISPLAY");
System.err.println("0x" + Integer.toHexString(value));
4 голосов
/ 01 марта 2011

Нет отдельного "шестнадцатеричного" типа данных. Если вы хотите отобразить значения в шестнадцатеричном формате, вы можете использовать статический метод Integer.toHexString(int i).

Даже если они хранятся в виде целых чисел, вы все равно можете делать что-то вроде

if (commandMap.get(command) == 0xD2) {
    ...
}

так что на самом деле нет необходимости иметь отдельный тип данных.

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