zoukankan      html  css  js  c++  java
  • 进制转换

        private static String hexString = "0123456789ABCDEF";
    
        /**
         * @Title:bytes2HexString
         * @Description:字节数组转16进制字符串
         * @param b
         *            字节数组
         * @return 16进制字符串
         * @throws
         */
        public static String bytesToHexString(byte[] src) {
            StringBuilder stringBuilder = new StringBuilder("");
            if (src == null || src.length <= 0) {
                return null;
            }
            for (int i = 0; i < src.length; i++) {
                int v = src[i] & 0xFF;
                String hv = Integer.toHexString(v);
                if (hv.length() < 2) {
                    stringBuilder.append(0);
                }
                stringBuilder.append(hv);
            }
            return stringBuilder.toString();
        }
    
        /**
         * @Title:hexString2Bytes
         * @Description:16进制字符串转字节数组
         * @param src
         *            16进制字符串
         * @return 字节数组
         * @throws
         */
        public static byte[] hexString2Bytes(String src) {
            int l = src.length() / 2;
            byte[] ret = new byte[l];
            for (int i = 0; i < l; i++) {
                ret[i] = (byte) Integer
                        .valueOf(src.substring(i * 2, i * 2 + 2), 16).byteValue();
            }
            return ret;
        }
    
        /*
         * 将字符串编码成16进制数字,适用于所有字符(包括中文)
         */
        public static String encode(String str) {
            // 根据默认编码获取字节数组
            byte[] bytes = str.getBytes();
            StringBuilder sb = new StringBuilder(bytes.length * 2);
            // 将字节数组中每个字节拆解成2位16进制整数
            for (int i = 0; i < bytes.length; i++) {
                sb.append(hexString.charAt((bytes[i] & 0xf0) >> 4));
                sb.append(hexString.charAt((bytes[i] & 0x0f) >> 0));
            }
            return sb.toString();
        }
    
        /*
         * 将COM*转换为对应的数字*,如COM1为1
         */
        public static int ComTransInt(String str) {
            int port = 0;
            if (!(str == null || ("".equals(str)))) {
                if (str.toUpperCase().contains("COM")) {
                    port = Integer.parseInt(str.substring(3));
                } else if (str.toUpperCase().contains("USB")) {
                    port = 0;
                } else {
                    port = -1;
                }
            } else {
                port = -1;
            }
            return port;
        }
    
        /*
         * 将16进制数字解码成字符串,适用于所有字符(包括中文)
         */
        public static String decode(String bytes) {
            ByteArrayOutputStream baos = new ByteArrayOutputStream(
                    bytes.length() / 2);
            // 将每2位16进制整数组装成一个字节
            for (int i = 0; i < bytes.length(); i += 2)
                baos.write((hexString.indexOf(bytes.charAt(i)) << 4 | hexString
                        .indexOf(bytes.charAt(i + 1))));
            return new String(baos.toByteArray());
        }
  • 相关阅读:
    一个很好的命令行分享网站
    Docker inside Docker 基于 Alpine Linux
    CentOS 下运行Docker 内执行 docker build 命令的简单方法
    CentOS 安装 Harbor的简单过程(仅使用http 未使用https)
    [财务会计] 表外科目
    jira 插件介绍地址
    Linux 下安装nginx的总结 (之前写的有问题))
    Jira 的 数据库备份恢复 简单过程
    Jira 7.2.4简单安装过程
    Tomcat绑定具体IP
  • 原文地址:https://www.cnblogs.com/zhang-bo/p/7228097.html
Copyright © 2011-2022 走看看