左晓为主开发手持机充值管理机
zuoxiao
2024-02-29 1c549ae7af5f8d7bdeecb4ad38ab181af4831821
app/src/main/java/com/dayu/recharge/tools/HexUtil.java
@@ -9,7 +9,7 @@
 * Copyright (C), 2022,
 * Author: zuo
 * Date: 2022/3/9 14:55
 * Description:
 * Description: 进制转换
 */
public class HexUtil {
@@ -40,6 +40,9 @@
        return result;
    }
    public static int getBcdToInt(byte data) {
        return ((data & 0xF0) >> 4) * 10 + ((data & 0x0F));
    }
    /**
     * Hex字符串转byte
@@ -62,7 +65,7 @@
        if (hex.length() < 2) {
            hex = "0" + hex;
        }
        return hex;
        return hex.toUpperCase();
    }
@@ -161,6 +164,63 @@
        }
    }
    /**
     * short10进制转16进制 低位在前高位在后
     * @param number
     * @return
     */
    public static String get10To16LowHigh(short number) {
        // 使用 Integer.toHexString 将 short 转换为十六进制字符串
        int intValue = Short.toUnsignedInt(number);
        // 使用 Integer.toHexString 将 int 转换为十六进制字符串
        String hexString = Integer.toHexString(intValue);
        // 补0,确保字符串长度为4
        while (hexString.length() < 4) {
            hexString = "0" + hexString;
        }
        hexString = spaceHex(hexString);
        hexString = HighLowHex(hexString);
        return hexString;
    }
    /**
     * short10进制转16进制 低位在前高位在后
     * @param number
     * @return
     */
    public static String get10To16LowHigh(int number) {
        // 使用 Integer.toHexString 将 int 转换为十六进制字符串
        String hexString = Integer.toHexString(number);
        hexString = spaceHex(hexString);
        hexString = HighLowHex(hexString);
        return hexString;
    }
    /**
     * short16进制转10进制 低位在前高位在后
     * @param hex
     * @return
     */
    public static short  getShort10To16LowHigh(String hex){
        try {
            String str = "";
            str = spaceHex(hex);
            str = HighLowHex(str);
            return (short) Integer.parseInt(str, 16);
        } catch (NumberFormatException e) {
           e.printStackTrace();
        }
        return 0;
    }
    /**
     * 十进制转16进制低位在前高位在后
     *
@@ -183,6 +243,25 @@
    }
    /**
     * 16进制转10进制高低位转换
     *
     * @param hex
     * @return
     */
    public static int get16to10LowHigh(String hex) {
        try {
            String str = "";
            str = spaceHex(hex);
            str = HighLowHex(str);
            return Integer.parseInt(str, 16);
        } catch (NumberFormatException e) {
            e.printStackTrace();
        }
        return 0;
    }
    /**
     * 返回特定长度的16进制字符串
     *
     * @param data