在地图中存储十六进制值.. java?

时间:2011-03-01 05:53:20

标签: java hashmap hex

我目前正在这样做..但它实际上存储为整数..我怎么能这样做?

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 个答案:

答案 0 :(得分:8)

十进制,十六进制,八进制等只是符号;即以字符呈现整数的不同方式。它们不是特殊的数字。

所以......

commandMap = new HashMap(); 
commandMap.put("SET_DISPLAY", 0xD0);
int value = commandMap.get("SET_DISPLAY");
System.err.println("0x" + Integer.toHexString(value));

答案 1 :(得分:4)

没有单独的“十六进制”数据类型。如果要将值显示为十六进制,则可以使用静态方法Integer.toHexString(int i)

即使它们存储为整数,您仍然可以执行

之类的操作
if (commandMap.get(command) == 0xD2) {
    ...
}

因此实际上不需要单独的数据类型。