gpt4 book ai didi

java - 将 bytes 数组转换为 long

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

我正在尝试将以下数组转换为长数字。

我的预期结果:153008(我不确定它是十进制还是十六进制)

我的实际结果(我得到的):176

这就是我所做的,我做错了什么?

  byte bytesArray [] = { -80,85,2,0,0,0,0,0};  

long Num = (bytesArray[7] <<56 |
bytesArray[6] & 0xFF << 48 |
bytesArray[5] & 0xFF << 40 |
bytesArray[4] & 0xFF << 32 |
bytesArray[3] & 0xFF << 24 |
bytesArray[2] & 0xFF << 16 |
bytesArray[1] & 0xFF << 8 |
bytesArray[0] & 0xFF << 0 );

最佳答案

像这样添加括号:

    long num = (bytesArray[7] << 56 |
(bytesArray[6] & 0xFF) << 48 |
(bytesArray[5] & 0xFF) << 40 |
(bytesArray[4] & 0xFF) << 32 |
(bytesArray[3] & 0xFF) << 24 |
(bytesArray[2] & 0xFF) << 16 |
(bytesArray[1] & 0xFF) << 8 |
(bytesArray[0] & 0xFF) << 0 );

否则你就<<0xFF所以在你这样做之前它变得非常大bytesArray[x] & [large number]其计算结果始终为 0 .

结果 153008 ,因此成功!

关于java - 将 bytes 数组转换为 long,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47261301/

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