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); } } }