From a9c1231be4e3c1c5bd5e9fc61489d55363090407 Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期一, 04 三月 2024 15:26:22 +0800 Subject: [PATCH] 齐河项目相关修改 --- app/src/main/java/com/dayu/recharge/tools/HexUtil.java | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 116 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/dayu/recharge/tools/HexUtil.java b/app/src/main/java/com/dayu/recharge/tools/HexUtil.java index 183296e..79176a6 100644 --- a/app/src/main/java/com/dayu/recharge/tools/HexUtil.java +++ b/app/src/main/java/com/dayu/recharge/tools/HexUtil.java @@ -1,6 +1,8 @@ package com.dayu.recharge.tools; import java.math.BigInteger; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -9,7 +11,7 @@ * Copyright (C), 2022, * Author: zuo * Date: 2022/3/9 14:55 - * Description: + * Description: 杩涘埗杞崲 */ public class HexUtil { @@ -40,6 +42,9 @@ return result; } + public static int getBcdToInt(byte data) { + return ((data & 0xF0) >> 4) * 10 + ((data & 0x0F)); + } /** * Hex瀛楃涓茶浆byte @@ -62,7 +67,7 @@ if (hex.length() < 2) { hex = "0" + hex; } - return hex; + return hex.toUpperCase(); } @@ -136,6 +141,38 @@ return Integer.toHexString(Float.floatToIntBits(value)); } + + /** + * 灏嗗甫绗﹀彿鐨�32浣嶆诞鐐规暟瑁呮崲byte鏁扮粍 + * 浣庝綅鍦ㄥ墠楂樹綅鍦ㄥ悗 + * + * @param value + * @return + */ + public static byte[] folatToByte(Float value) { + ByteBuffer buffer = ByteBuffer.allocate(4); // 4涓瓧鑺� + buffer.order(ByteOrder.LITTLE_ENDIAN); + buffer.putFloat(value); + byte[] byteArray = buffer.array(); + return byteArray; + } + + /** + * 灏哹yte鏁扮粍杞崲涓哄甫绗﹀彿鐨�32浣嶆诞鐐规暟 + * + * 浣庝綅鍦ㄥ墠楂樹綅鍦ㄥ悗 + * + * @param value + * @return + */ + public static Float bytesToFloat(byte[] value) { + ByteBuffer bufferLittleEndian = ByteBuffer.wrap(value); + bufferLittleEndian.order(ByteOrder.LITTLE_ENDIAN); + return bufferLittleEndian.getFloat(); + + } + + /** * 鍗佽繘鍒惰浆16杩涘埗 * @@ -161,6 +198,64 @@ } } + + /** + * 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 +278,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 -- Gitblit v1.8.0