java - 追加从数组中读取的整数的二进制值

标签 java arrays binary byte radix


我有一个整数数组。我使用 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/

相关文章:

mysql - 使用 MySQL 将二进制转换为十进制

java - 什么是测试预言机,它有什么用?

java - com.mysql.jdbc.ResultSetMetaData;对比 java.sql.ResultSetMetaData;

java - 如何存储 MySQL 数据库密码和用户名以访问数据库?

javascript - AngularJS 搜索对象数组

c - 过程链接表的用途是什么?

java - BufferedReader 如何

C# UWP 数组测量值的平均值

c++ - Visual Studio C++ |每次我尝试从 [80]x[80] 数组循环 cout 时程序崩溃

c++ - 找出(在 C++ 中)二进制数是否是另一个的前缀