java byte数组转二进制
时间: 2023-10-17 17:20:39 浏览: 48
Java 中可以使用 Integer 类的 toBinaryString() 方法将 byte 数组转换为二进制字符串,代码示例如下:
```java
byte[] bytes = {0x12, 0x34, 0x56};
StringBuilder sb = new StringBuilder();
for (byte b : bytes) {
sb.append(String.format("%8s", Integer.toBinaryString(b & 0xFF)).replace(' ', '0'));
}
String binaryStr = sb.toString();
System.out.println(binaryStr); // 输出:00010010 00110100 01010110
```
上述代码中,我们先将 byte 数组中的每个元素转换为无符号整数(即使用 b & 0xFF),再使用 Integer.toBinaryString() 方法将其转换为二进制字符串,最后使用 String.format() 方法补充前导零,并将每个字节的二进制字符串拼接起来。
相关问题
byte数组转2进制
将一个byte数组转换为二进制字符串可以使用Java内置的Integer.toBinaryString()方法。这个方法将一个十进制数转换为二进制字符串,所以我们只需要将每个byte转换为对应的十进制数,然后拼接成一个大的二进制字符串即可。
下面是一个示例代码:
```
/**
* 将一个byte数组转换为二进制字符串
* @param bytes byte数组
* @return 二进制字符串
*/
public static String bytesToBinary(byte[] bytes) {
StringBuilder sb = new StringBuilder();
for (byte b : bytes) {
sb.append(String.format("%8s", Integer.toBinaryString(b & 0xFF)).replace(' ', '0'));
}
return sb.toString();
}
```
在这个方法中,我们首先创建了一个StringBuilder对象,然后对于数组中的每个byte,我们使用Integer.toBinaryString()方法将其转换为二进制字符串,并使用String.format()方法将其格式化为8位二进制字符串。我们使用&运算符和0xFF掩码来确保我们获取的是byte的无符号值。最后,我们将这些二进制字符串拼接成一个大的二进制字符串,并返回它。
使用这个方法,你可以将一个byte数组转换为二进制字符串。
android byte数组转16进制string
可以使用以下代码将 byte 数组转换为 16 进制字符串:
```java
public static String bytesToHex(byte[] bytes) {
StringBuilder hexString = new StringBuilder();
for (byte b : bytes) {
String hex = Integer.toHexString(0xFF & b);
if (hex.length() == 1) {
hexString.append('0');
}
hexString.append(hex);
}
return hexString.toString();
}
```
调用方法:
```java
byte[] byteArray = {0x01, 0x02, 0x03, (byte)0xFF};
String hexString = bytesToHex(byteArray);
System.out.println(hexString); // 输出:010203ff
```
注意:Java 中的 byte 类型是有符号的,范围为 -128 到 127。如果需要将 8 位二进制数表示的无符号数转为 byte 类型,可以使用 `int` 类型与 `0xFF` 进行按位与运算,如 `(byte)0xFF`。