gpt4 book ai didi

java - 如何在 Java 中将表示整数的字符串转换为无符号字节数组?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:52:54 25 4
gpt4 key购买 nike

基本上,我想要的是将像 "123456" 这样的字符串转换为无符号字节数组:[1, 226, 64]。但是,我到处查看,发现是获取 2 的补码(有符号)字节数组 [1, -30, 64]:

byte[] array = new BigInteger("123456").toByteArray();
System.out.println(Arrays.toString(array));

输出:

[1, -30, 64]

那么,如何用 Java 实现呢?我希望输出为:

[1, 226, 64]

编辑:我知道字节最多只能容纳 127,所以我需要它不是字节数组,而是 int 数组。

最佳答案

Java 没有无符号类型,因此您必须将值存储在 int 数组中。

byte[] array = new BigInteger("123456").toByteArray(); 
int[] unsigned_array = new int[array.length];
for (int i = 0; i < array.length; i++) {
unsigned_array[i] = array[i] >= 0 ? array[i] : array[i] + 256;
}

相当简单。

关于java - 如何在 Java 中将表示整数的字符串转换为无符号字节数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9574172/

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