From 2fcd97552d16718cc7997629fd637a73a5a4483f Mon Sep 17 00:00:00 2001
From: 郑永安 <zyazyz250@sina.com>
Date: 星期一, 19 六月 2023 14:44:19 +0800
Subject: [PATCH] 删除

---
 src/main/java/com/gk/firework/Domain/Utils/HexUtil.java |   88 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 88 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/gk/firework/Domain/Utils/HexUtil.java b/src/main/java/com/gk/firework/Domain/Utils/HexUtil.java
new file mode 100644
index 0000000..d658563
--- /dev/null
+++ b/src/main/java/com/gk/firework/Domain/Utils/HexUtil.java
@@ -0,0 +1,88 @@
+package com.gk.firework.Domain.Utils;
+
+import org.apache.commons.lang3.StringUtils;
+
+public class HexUtil {
+    /**
+     * 将十六进制的字符串转换成字节数组
+     *
+     * @param hexString
+     * @return
+     */
+    public static byte[] hexStrToByteArrs(String hexString) {
+        if (StringUtils.isEmpty(hexString)) {
+            return null;
+        }
+
+        hexString = hexString.replaceAll(" ", "");
+        int len = hexString.length();
+        int index = 0;
+
+        byte[] bytes = new byte[len / 2];
+
+        while (index < len) {
+            String sub = hexString.substring(index, index + 2);
+            bytes[index / 2] = (byte) Integer.parseInt(sub, 16);
+            index += 2;
+        }
+
+        return bytes;
+    }
+
+    /**
+     * 数组转换成十六进制字符串
+     * @return HexString
+     */
+    public static final String bytesToHexString(byte[] bArray) {
+        StringBuffer sb = new StringBuffer(bArray.length);
+        String sTemp;
+        for (int i = 0; i < bArray.length; i++) {
+            sTemp = Integer.toHexString(0xFF & bArray[i]);
+            if (sTemp.length() < 2)
+                sb.append(0);
+            sb.append(sTemp.toUpperCase());
+            // 在这里故意追加一个逗号便于最后的区分
+            sb.append(" ");
+        }
+        return sb.toString();
+    }
+
+
+    /**
+     * 字节转换为浮点
+     *
+     * @param b 字节(至少4个字节)
+     * @param index 开始位置
+     * @return
+     */
+    public static float byte2float(byte[] b, int index) {
+        int l;
+        l = b[index + 0];
+        l &= 0xff;
+        l |= ((long) b[index + 1] << 8);
+        l &= 0xffff;
+        l |= ((long) b[index + 2] << 16);
+        l &= 0xffffff;
+        l |= ((long) b[index + 3] << 24);
+        return Float.intBitsToFloat(l);
+    }
+
+
+    /**四个字节的寄存器(十六进制),两两转成十进制,传过来之后返回浮点数**/
+    public static float GetFloat(int P1, int P2)
+    {
+        int intSign, intSignRest, intExponent, intExponentRest;
+        float faResult, faDigit;
+        intSign = P1 / 32768;
+        intSignRest = P1 % 32768;
+        intExponent = intSignRest / 128;
+        intExponentRest = intSignRest % 128;
+        faDigit = (float)(intExponentRest * 65536 + P2) / 8388608;
+        faResult = (float)Math.pow(-1, intSign) * (float)Math.pow(2, intExponent - 127) * (faDigit + 1);
+        return faResult;
+    }
+
+
+
+
+}

--
Gitblit v1.9.2