java两位字节数组转10进制
时间: 2023-11-14 09:07:56 浏览: 43
Java中可以使用以下代码将两位字节数组转换为10进制数:
```
public int bytesToDecimal(byte[] bytes) {
return ((bytes[0] & 0xFF) << 8) | (bytes[1] & 0xFF);
}
```
其中,bytes表示高位字节,bytes表示低位字节。通过位运算将两个字节合并成一个整数。其中,& 0xFF是为了将byte类型转换为int类型,<< 8是将高位字节左移8位,| 是按位或运算符,将两个字节合并成一个整数。
相关问题
java字节数组转16进制字符串
在Java中,可以使用以下方法将字节数组转换为16进制字符串:
```java
public static String bytesToHex(byte[] bytes) {
StringBuilder result = new StringBuilder();
for (byte b : bytes) {
result.append(String.format("%02X", b));
}
return result.toString();
}
```
这个方法接受一个字节数组作为参数,并返回一个16进制字符串。它使用StringBuilder来构建结果字符串,并使用String.format方法将每个字节转换为两位的16进制表示形式(使用"%02X"格式化字符串)。最后,通过调用toString方法将StringBuilder转换为普通的字符串并返回。
使用示例:
```java
byte[] byteArray = {10, 20, 30, 40};
String hexString = bytesToHex(byteArray);
System.out.println(hexString); // 输出:0A141E28
```
这里的byteArray是一个包含了一些字节的字节数组,通过调用bytesToHex方法将其转换为16进制字符串,并打印输出结果。
写一个16进制转字节数组的工具方法
以下是一个Java语言实现的16进制转字节数组的工具方法:
```java
public static byte[] hexToBytes(String hexString) {
int length = hexString.length();
byte[] bytes = new byte[length / 2];
for (int i = 0; i < length; i += 2) {
bytes[i / 2] = (byte) ((Character.digit(hexString.charAt(i), 16) << 4)
+ Character.digit(hexString.charAt(i+1), 16));
}
return bytes;
}
```
该方法接收一个16进制字符串作为参数,返回一个对应的字节数组。方法中使用了Character.digit()方法将16进制字符转换为对应的数字,然后通过位运算将两个数字合并成一个字节。如果输入的16进制字符串长度为奇数,则最后一个字符会被忽略。