From 13b31b2ca2a5f8600002a042b536c9d5529842e3 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期一, 09 三月 2026 19:21:18 +0800
Subject: [PATCH] #

---
 src/main/java/com/core/common/RadixTools.java |  131 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 131 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/core/common/RadixTools.java b/src/main/java/com/core/common/RadixTools.java
new file mode 100644
index 0000000..a0ad5a5
--- /dev/null
+++ b/src/main/java/com/core/common/RadixTools.java
@@ -0,0 +1,131 @@
+package com.core.common;
+
+import java.io.UnsupportedEncodingException;
+import java.nio.charset.Charset;
+
+public class RadixTools {
+
+    public static void main(String[] args) {
+        String val = toBinaryString((byte) 1);
+        System.out.println(val);
+        for (int i = val.length() - 1; i >= 0; i--) {
+            char c = val.charAt(i);
+            if (i == 7 && c == '1') {
+                System.out.println("===");
+            }
+        }
+    }
+
+    public static String toBinaryString(byte b) {
+        return Long.toBinaryString((b & 0xFF) + 0x100L).substring(1);
+    }
+
+    public static String toBinaryString(byte[] bytes) {
+        StringBuilder builder = new StringBuilder();
+        for (byte b : bytes) {
+            builder.append(Long.toBinaryString((b & 0xFF) + 0x100L).substring(1));
+        }
+        return builder.toString();
+    }
+
+    public static byte[] hexStringToBytes(String hexString) {
+        if (hexString == null || "".equals(hexString)) {
+            return null;
+        }
+        String upper = hexString.toUpperCase();
+        int length = upper.length() / 2;
+        char[] chars = upper.toCharArray();
+        byte[] result = new byte[length];
+        for (int i = 0; i < length; i++) {
+            int pos = i * 2;
+            result[i] = (byte) ((charToByte(chars[pos]) << 4) | charToByte(chars[pos + 1]));
+        }
+        return result;
+    }
+
+    public static String bytesToHexStr(byte[] bytes) {
+        StringBuilder builder = new StringBuilder(bytes.length * 2);
+        for (byte b : bytes) {
+            builder.append(String.format("%02x", b & 0xFF));
+        }
+        return builder.toString();
+    }
+
+    private static byte charToByte(char c) {
+        return (byte) "0123456789ABCDEF".indexOf(c);
+    }
+
+    public static String bytesToStr(byte[] bytes) {
+        return bytesToStr(bytes, Charset.forName("gbk"));
+    }
+
+    public static String bytesToStr(byte[] bytes, Charset charset) {
+        return new String(bytes, charset).trim().toUpperCase();
+    }
+
+    public static byte[] strToBytes(String str) throws UnsupportedEncodingException {
+        return str.getBytes("gbk");
+    }
+
+    public static byte[] longToBytes(long value) {
+        long tmp = value;
+        byte[] bytes = new byte[8];
+        for (int i = 0; i < bytes.length; i++) {
+            bytes[i] = Long.valueOf(tmp & 0xFF).byteValue();
+            tmp = tmp >> 8;
+        }
+        return bytes;
+    }
+
+    public static long bytesToLong(byte[] bytes) {
+        long result = 0L;
+        long b0 = bytes[0] & 0xFFL;
+        long b1 = (bytes[1] & 0xFFL) << 8;
+        long b2 = (bytes[2] & 0xFFL) << 16;
+        long b3 = (bytes[3] & 0xFFL) << 24;
+        long b4 = (bytes[4] & 0xFFL) << 32;
+        long b5 = (bytes[5] & 0xFFL) << 40;
+        long b6 = (bytes[6] & 0xFFL) << 48;
+        long b7 = (bytes[7] & 0xFFL) << 56;
+        result = b0 | b1 | b2 | b3 | b4 | b5 | b6 | b7;
+        return result;
+    }
+
+    public static byte[] intToBytes(int value) {
+        int tmp = value;
+        byte[] bytes = new byte[4];
+        for (int i = 0; i < bytes.length; i++) {
+            bytes[i] = Integer.valueOf(tmp & 0xFF).byteValue();
+            tmp = tmp >> 8;
+        }
+        return bytes;
+    }
+
+    public static int bytesToInt(byte[] bytes) {
+        int result;
+        int b0 = bytes[0] & 0xFF;
+        int b1 = (bytes[1] & 0xFF) << 8;
+        int b2 = (bytes[2] & 0xFF) << 16;
+        int b3 = (bytes[3] & 0xFF) << 24;
+        result = b0 | b1 | b2 | b3;
+        return result;
+    }
+
+    public static short byteToShort(byte[] bytes) {
+        short result;
+        short b0 = (short) (bytes[0] & 0xFF);
+        short b1 = (short) ((bytes[1] & 0xFF) << 8);
+        result = (short) (b0 | b1);
+        return result;
+    }
+
+    public static byte[] shortToByte(short value) {
+        int tmp = value;
+        byte[] bytes = new byte[2];
+        for (int i = 0; i < bytes.length; i++) {
+            bytes[i] = Integer.valueOf(tmp & 0xFF).byteValue();
+            tmp = tmp >> 8;
+        }
+        return bytes;
+    }
+}

--
Gitblit v1.9.1