将一个16进制数据,按2位截取,再转为10进制的数,代码展示
时间: 2024-03-17 22:40:03 浏览: 47
可以通过以下代码实现:
```java
String hexString = "1A2B3C4D"; // 16进制字符串
byte[] bytes = new byte[hexString.length() / 2];
for (int i = 0; i < bytes.length; i++) {
String hex = hexString.substring(i * 2, i * 2 + 2); // 按2位截取
bytes[i] = (byte) Integer.parseInt(hex, 16); // 转为byte类型
}
for (byte b : bytes) {
int decimal = (int) b & 0xff; // 将byte类型转为无符号int类型
System.out.print(decimal + " "); // 输出10进制数
}
```
其中,`hexString`为16进制字符串,`bytes`为按2位截取后转为的byte数组,`decimal`为将byte类型转为无符号int类型的结果,最后输出的是每个16进制数对应的10进制数。
相关问题
java 一串16进制的数据,按2位截取在转为10进制
好的,您可以通过 Java 中的 `Integer.parseInt()` 方法将16进制字符串转换为10进制整数。具体的代码如下:
```java
String hexString = "A1B2C3D4";
for (int i = 0; i < hexString.length(); i += 2) {
String hex = "" + hexString.charAt(i) + hexString.charAt(i + 1);
int decimal = Integer.parseInt(hex, 16);
System.out.print(decimal + " ");
}
```
这段代码将会输出 `161 178 195 212`。
java 一串16进制的数据,按2位截取在转为10进制Double类型
可以通过以下代码实现:
```java
String hexString = "3F80000000000000"; // 16进制字符串
byte[] bytes = new byte[8];
for (int i = 0; i < 8; i++) {
bytes[i] = (byte) Integer.parseInt(hexString.substring(i * 2, i * 2 + 2), 16); // 按2位截取并转为byte数组
}
long bits = ((long) bytes[0] << 56) | ((long) bytes[1] << 48) | ((long) bytes[2] << 40) | ((long) bytes[3] << 32)
| ((long) bytes[4] << 24) | ((long) bytes[5] << 16) | ((long) bytes[6] << 8) | (long) bytes[7];
double result = Double.longBitsToDouble(bits); // 转为double类型
System.out.println(result); // 输出结果
```
其中,`hexString`为16进制字符串,`bytes`为按2位截取后转为的byte数组,`bits`为将byte数组转为long类型后再转为double类型的结果,`result`为最终的Double类型结果。
阅读全文