如何从Java中的十进制整数中获取十六进制值?

时间:2011-03-10 10:33:33

标签: java hex int

我不知道如何从Java中的整数值生成十六进制“0x83”字符。

我需要一个“0x83”值来表示西里尔字母中的一个字母(这封信:ѓ),以便将它(字母)发送到我的打印机。使用我的转换器(下面)将131(十进制0x83)转换为十六进制时,我得到三个数字:0x31,0x33和0x31。

public String toHex(String arg) {
    return String.format("%x", new BigInteger(arg.getBytes()));
}

我需要从此转换中获得0x83。

6 个答案:

答案 0 :(得分:40)

如果您尝试将整数131转换为十六进制字符串,可以尝试

Integer.toHexString( 131 )

它将返回“83”作为字符串。

答案 1 :(得分:12)

以下是一个例子:

String str = Integer.toHexString(131);
System.out.println(str);

答案 2 :(得分:2)

String cyrillic = Character.toString((char)0x83)

答案 3 :(得分:0)

您是否尝试过查看Java Integer API。这里有几个examples:

答案 4 :(得分:0)

转换时我没有看到问题:

System.out.println(Integer.toHexString(131));

返回83。

答案 5 :(得分:0)

两种可能性,您的打印机需要0x83作为字节或字符串/ char

以字节形式发送:

int Cyrillic_int = 131; 
byte Cyrillic = (byte) Cyrillic_int;

或发送字符串表示0x83:

int Cyrillic_int = 131;
String Cyrillic = Integer.toHexString(131);