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