package com.ruoyi.fuzhou.utils.electricitymodbus;
|
|
public class HexStringToInt {
|
|
public static void main(String[] args) {
|
String hexString = "FFFFFF02"; // 示例十六进制字符串
|
long intValue = hexStringToIntelc(hexString);
|
System.out.println("Hex String: " + hexString);
|
System.out.println("Int Value: " + intValue);
|
}
|
|
/**
|
* 将2字节的十六进制字符串转换为整型
|
*
|
* @param hexString 2字节的十六进制字符串(例如 "FF9C")
|
* @return 转换后的整型值
|
*/
|
public static long hexStringToInt(String hexString) {
|
// 将十六进制字符串解析为整数
|
long value = Long.parseLong(hexString, 16);
|
|
// 如果值大于等于 0x8000(即最高位为1),则表示这是一个有符号的负数
|
if (value >= 0x8000) {
|
value = value - 0x10000; // 转换为有符号整数
|
}
|
|
return value;
|
}
|
|
/**
|
* 将2字节的十六进制字符串转换为整型
|
*
|
* @param hexString 2字节的十六进制字符串(例如 "FF9C")
|
* @return 转换后的整型值
|
*/
|
public static long hexStringToIntelc(String hexString) {
|
// 将十六进制字符串解析为整数
|
long value = Long.parseLong(hexString, 16);
|
|
// 如果值大于等于 0x8000(即最高位为1),则表示这是一个有符号的负数
|
if (value >= 0x8000) {
|
value = value - 0x10000; // 转换为有符号整数
|
}
|
|
return value;
|
}
|
|
/**
|
* 将2字节的十六进制字符串转换为整型
|
*
|
* @param hexString 2字节的十六进制字符串(例如 "FF9C")
|
* @return 转换后的整型值
|
*/
|
public static long hexStringToInt2(String hexString) {
|
// 将十六进制字符串解析为整数
|
long value = Long.parseLong(hexString, 16);
|
return value;
|
}
|
|
public static String hexStringToString(String hexString) {
|
// 将十六进制字符串解析为整数
|
int value = Integer.parseInt(hexString, 16);
|
if (value > 9) {
|
return String.valueOf(value);
|
} else {
|
return "0" + String.valueOf(value);
|
}
|
}
|
|
}
|