java如何十进制转二进制数组

java如何十进制转二进制数组

作者:William Gu发布时间:2026-02-04阅读时长:0 分钟阅读次数:2

用户关注问题

Q
如何将十进制整数转换为Java中的二进制数组?

我有一个十进制整数,想要在Java中将其转换为一个表示二进制数的数组,该怎么做比较简单有效?

A

使用Integer类方法和数组转换实现十进制到二进制数组的转换

可以先使用Java的Integer.toBinaryString(int)方法把十进制数转换成二进制字符串,然后遍历字符串,将字符'0'或'1'转成对应的整数存入数组。例如:

int decimal = 23;
String binaryStr = Integer.toBinaryString(decimal);
int[] binaryArray = new int[binaryStr.length()];
for (int i = 0; i < binaryStr.length(); i++) {
    binaryArray[i] = binaryStr.charAt(i) - '0';
}

这样就得到了表示二进制的int数组。

Q
如何处理固定长度的二进制数组转换?

如果需要将十进制数转换为固定长度的二进制数组,比如长度固定为8位,短的该如何处理?

A

通过格式化字符串补零,保证二进制数组定长

可以使用String.format结合Integer.toBinaryString,将二进制字符串补齐到固定长度,例如8位:

int decimal = 5;
String binaryStr = String.format("%8s", Integer.toBinaryString(decimal)).replace(' ', '0');
int[] binaryArray = new int[8];
for (int i = 0; i < 8; i++) {
    binaryArray[i] = binaryStr.charAt(i) - '0';
}

这样生成的数组长度固定且高位前置0。

Q
Java中如何将转换后的二进制数组用于位操作?

转换成的二进制数组是否可以方便地用来进行位运算?该怎么操作?

A

推荐使用位运算符直接处理整数,更高效

虽然可以将二进制转换成数组用于位操作,但是推荐直接对整数本身使用位运算符(如&,|,^,<<,>>),效率更高。如果需要对单个位进行操作,可以通过位操作获取或修改位值,无须转换成数组。例如,获取第3位的值:

int bitValue = (decimal >> 2) & 1;

这样可以进行快速的位操作。