我想得到这个:
byte dec = 10;
到此:
byte hex = 0x0A;
但我无法在任何地方找到解决方案。
我总是看到String s = Integer.parseInt(...
但我不希望String
作为结果。
我想要byte
。
答案 0 :(得分:9)
字节只是内存中的一系列位 - 它在视觉上如何表示并不重要,两个不同的表示可能意味着相同的事情。如果你想要的只是 hex literal ,你可以试试这个:
byte dec = 10;
byte hex = 0xA; // hex literal
System.out.println(dec == hex);
true
请注意dec
和hex
完全相同; 10
和0xA
代表相同的数字,只是在不同的基础上。
如果要以十六进制显示字节,可以使用Integer.toHexString()
:
byte dec = 10;
System.out.println(Integer.toHexString(dec));
a
答案 1 :(得分:0)
不幸的是,你不能把“A”作为一个字节。字节是数字的扩展,因此您只能在此处保存数值。您可能希望做的是返回表示十六进制或字符串的字符。
这样的东西可能有用:
package sandbox;
public class Sandbox
{
public static void main(String[] args)
{
byte value = 1;
char charValue = getHex(value);
System.out.println(charValue);
}
private static char getHex(byte b)
{
Byte bObj = new Byte(b);
if (b < 10) { return bObj.toString().charAt(0); }
else
{
char hexChar = (char)(bObj.toString().charAt(1) + 'A' - '0');
return hexChar;
}
}
}
我希望我能提供帮助。