HarmonyOS 鸿蒙Next java代码long和byte[]互相转换如何实现

发布于 1周前 作者 caililin 来自 鸿蒙OS

HarmonyOS 鸿蒙Next java代码long和byte[]互相转换如何实现

问题1:java long转换有符号十进制byte[]

请提供转成 有符号8字节十进制数组 的示例代码

问题2:8字节有符号十进制byte[]转换成数值

请提供转换成数值的示例代码。

2 回复

参考如下写法:

let data = BigInt("9223372036854775807")
let tempBE = buffer.alloc(8)
tempBE.fill(0)
tempBE.writeBigInt64BE(data)
let intArrBE = new Int8Array(tempBE.buffer);

console.debug('intArrBE:' + intArrBE.toString())
let buf = buffer.from(intArrBE.buffer);
console.log('BigInt:'+buf.readBigInt64BE().toString());

更多关于HarmonyOS 鸿蒙Next java代码long和byte[]互相转换如何实现的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙系统中,实现Java代码中longbyte[]的互相转换,可以按照以下方法操作:

long 转 byte[]

要将long类型的数据转换为byte[],可以使用ByteBuffer

import java.nio.ByteBuffer;

public byte[] longToByteArray(long value) {
    ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES);
    buffer.putLong(value);
    return buffer.array();
}

byte[] 转 long

要将byte[]转换为long,同样可以使用ByteBuffer

import java.nio.ByteBuffer;

public long byteArrayToLong(byte[] bytes) {
    ByteBuffer buffer = ByteBuffer.wrap(bytes);
    return buffer.getLong();
}

上述方法利用了ByteBuffer的便捷方法来进行基本数据类型的转换,这种方法在Java中非常常见,且适用于各种Java平台,包括HarmonyOS。

注意事项

  • 确保在转换时,byte[]的长度与long的字节数(8字节)一致,否则可能会导致数据丢失或异常。
  • 如果byte[]来源于网络或其他不可靠来源,建议进行额外的数据校验和错误处理。

如果问题依旧没法解决请联系官网客服, 官网地址是 https://www.itying.com/category-93-b0.html

回到顶部