Java中的python struct.unpack

0 投票
1 回答
1384 浏览
提问于 2025-04-17 18:23

我刚开始学Python,最近在尝试把一个Python脚本转换成Java代码。可是我在下面这段代码的逻辑上卡住了,想把它转成Java却一直没成功(可能是因为我没搞懂它到底在做什么)。

data = unpack('>H', file.read(2))
if data == 0xffff
then //do something
else //do something else

我觉得在上面的Python脚本中,主要是在做以下事情:从一个字符串中提取数据(我认为是读取文件的前两个字节),并以十六进制格式检查它的值是否为0。

我对提取数据的理解对吗?如果不对,那提取数据到底在做什么呢?是通过以下操作从文件对象中获取一个子字符串吗:

1 - 将文件读入一个字节数组

2 - 获取字节数组的前两个元素

然后接下来做什么呢?

有没有人能帮我把上面Python中的逻辑写成Java代码呢?

1 个回答

1

在Java中,你需要用到BigInteger,因为Java自带的long类型最多只能表示64位的数字,超出这个范围就不行了。

你可以通过一个字节数组来初始化BigInteger,所以这样用是没问题的。

撰写回答