我目前正在这样做..但它实际上存储为整数..我怎么能这样做?
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);
答案 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) {
...
}
因此实际上不需要单独的数据类型。