我有一个整数数组。我使用 for 循环读取每个值。现在我想附加每个值的二进制并获取附加二进制的小数。
例如。
数组=> 01 05
二进制=> 00000001 00000101
附加二进制 => 0000000100000101,给出十进制 261。
我该怎么做?
请帮忙。
最佳答案
由于这不是家庭作业,因此无需执行“转换为二进制”这一低效的中间步骤(计算机中的整数已经以二进制格式存储!)
public class Testy {
public static void main(String[] args) {
int[] arr = new int[] { 1, 5 };
int sum = 0;
for (int i = 0; i < arr.length; i++) {
int val = arr[i];
sum = (sum << 8) + val;
}
System.out.println("final: " + sum);
}
}
如果要包含 3 个以上的整数,则应将 sum
设为 long
而不是 int
,否则你可能会溢出。
顺便问一下,你的 for 循环是如何获取值的?如果它正在读取单个字节并将其转换为整数,那么一次性读取整个短整型或整数可能更有意义,但要注意字节序。
关于java - 追加从数组中读取的整数的二进制值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5644468/