gpt4 book ai didi

Java 相当于 Ruby 的 String.unpack "q*"

转载 作者:行者123 更新时间:2023-12-02 00:21:22 25 4
gpt4 key购买 nike

在 Java 中,我尝试解码由以下 ruby​​ 代码编写的整数:

def int_to_hex_string(i)
[i].pack('q').reverse
end

对于数字 42,结果字符串将为“\x00\x00\x00\x00\x00\x00\x00*”

以下 Ruby 代码将反转该过程:

def hex_string_to_int(s)
s.reverse.unpack('q*').first
end

如何在 Java 中模拟最后一个方法?

最佳答案

更新:最简单的方法是使用 java.math.BigInteger:

return new BigInteger(bytes).intValue();

或者,如果有人真的想自己实现它:

public static int unpackInteger(byte[] bytes) {
int sum = 0;
int mul = 1;

for (int i=bytes.length-1; i >= 0; i--) {
sum += (mul * (bytes[i] & 0xff));
mul <<= 8;
}
return sum;
}

关于Java 相当于 Ruby 的 String.unpack "q*",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10913137/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com