Java 将十六进制转换为小尾数
将文本字段的值从十六进制转换为小尾数的公式是什么 输入示例:5A109061Java 将十六进制转换为小尾数,java,android,Java,Android,将文本字段的值从十六进制转换为小尾数的公式是什么 输入示例:5A109061 输出示例:1636831322使用ByteBuffer ByteBuffer byteBuffer = ByteBuffer.allocate(8)order(ByteOrder.LITTLE_ENDIAN).putLong(5A109061) byte[] result = byteBuffer.array(); 从EditText中获取值作为字符串 使用Integer.parseInt(…)和基数16将字符串值
输出示例:1636831322使用
ByteBuffer
ByteBuffer byteBuffer = ByteBuffer.allocate(8)order(ByteOrder.LITTLE_ENDIAN).putLong(5A109061)
byte[] result = byteBuffer.array();
EditText
中获取值作为字符串
Integer.parseInt(…)
和基数16
将字符串值解析为十六进制ByteBuffer
(更简单)或使用位移位(更快),翻转int的字节顺序String hex = "5A109061"; // mEditText.getText().toString()
// Parse hex to int
int value = Integer.parseInt(hex, 16);
// Flip byte order using ByteBuffer
ByteBuffer buffer = ByteBuffer.allocate(4);
buffer.order(ByteOrder.BIG_ENDIAN);
buffer.asIntBuffer().put(value);
buffer.order(ByteOrder.LITTLE_ENDIAN);
int flipped = buffer.asIntBuffer().get();
System.out.println("hex: 0x" + hex);
System.out.println("flipped: " + flipped);
输出:
hex: 0x5A109061
flipped: 1636831322
您也可以将此扩展用于kotlin。 例如:
你检查过这个了吗?谢谢,这个很好用。解释得也很好。
val str = "6a3b7043"
val hex2Float = str.hex2Float
fun String.hex2Float(): Float{
val i = toLong(16)
val data = java.lang.Float.intBitsToFloat(i.toInt()) // Big endian
val buffer = ByteBuffer.allocate(4)
buffer.asFloatBuffer().put(data)
buffer.order(ByteOrder.LITTLE_ENDIAN)
val lData = buffer.asFloatBuffer().get() // Little endian
return lData
}