我有一个 byte[5] 数组,它表示打印为十六进制字符串时的十进制数。一个字节可以存储两个数字,不使用十六进制字符。 例如
[0x11,0x45,0x34,0x31,0x21] -> 1145343121.
在 Java 中是否有更有效的方法(可能是一些移位魔法)来转换为除
之外的十进制数long result = Long.parseLong(byteToHexString(bytes[]));?
反之亦然的高效转换也很有趣......
最佳答案
((a[0]>>>4)*1000000000L + (a[0]&15)*100000000L +
(a[1]>>>4)* 10000000L + (a[1]&15)* 1000000L +
(a[2]>>>4)* 100000L + (a[2]&15)* 10000L +
(a[3]>>>4)* 1000L + (a[3]&15)* 100L +
(a[4]>>>4)* 10L + (a[4]&15))
关于java - 将数字的十六进制表示形式转换为十进制值的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8205142/