zoukankan      html  css  js  c++  java
  • 【Java-算法】 十六进制转字节数组

    Java Code

    public class Convert{
    
        public static void main(String args[]) {
            String sHex = "00 B6 00 02 0A 28"; // 输入十六进制字符串
            sHex = sHex.replace(" ", ""); // 去掉空格
            byte[] bytes = hexStringToBytes(sHex); // 十六进制转字节数组
            for (byte b : bytes) {
                System.out.print(b + " "); // 字节数组逐个打印出来
            }
        }
    
        /** 十六进制转换成字节数组 */
        private static byte[] hexStringToBytes(String hexString) {
            if (hexString == null || hexString.equals("")) {
                return null;
            }
            hexString = hexString.toUpperCase(); // 十六进制转大写字母
            int length = hexString.length() / 2; // 获取十六进制的长度,2个字符为一个十六进制
            char[] hexChars = hexString.toCharArray();
            byte[] d = new byte[length];
            for (int i = 0; i < length; i++) {
                int pos = i * 2;
                d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));
            }
            return d;
        }
    
        /** char转byte */
        private static byte charToByte(char c) {
            return (byte) "0123456789ABCDEF".indexOf(c);
        }
    }

    输出结果:0 -74 0 2 10 40

  • 相关阅读:
    Android 中的 Service 全面总结
    数据库事务
    ADB server didn't ACK
    Eclipse中10个最有用的快捷键组合
    IoC框架
    Wifi相关的操作
    Hibernate generator小结
    不朽的青春
    JSCPC 2020 摸鱼记
    CCPC 2020 秦皇岛站 H题
  • 原文地址:https://www.cnblogs.com/Sukie-s-home/p/8377452.html
Copyright © 2011-2022 走看看