我想要获取这个:
byte dec = 10;
转换为:
byte hex = 0x0A;
但我无法在任何地方找到解决方案。
我总是看到 String s = Integer.parseInt(...
但我不想要一个 String
作为结果。
我想要一个 byte
。
一个字节(byte)就是内存中的一串比特(bits)-- 它的可视化表示并不重要,两种不同的表示方法可能意味着相同的含义。如果你只需要一个十六进制字面量(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
很遗憾,您无法将“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;
}
}
}
希望我有所帮助。
byte hex = 0x00; for(byte i=1; i<dec+1; i++) {++hex}
- KeksArmeebyte hex = dec;
,这将会得到与你的循环完全相同的结果。 - Jon Skeet