进制转换16进制

原文地址:

http://blog.csdn.net/dante_003/article/details/40869409

    /** 
         * 16进制字符串转换为byte[] 
         *  
         * @param hexString 
         * @return 
         */  
        public static byte[] hexStringToBytes(String hexString) {  
            if (hexString == null || hexString.equals("")) {  
                return null;  
            }  
            hexString = hexString.toUpperCase().replace(" ", "");  
            int length = hexString.length() / 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;  
        }  
      
        /** 
         * byte[]转换成16进制字符串 
         *  
         * @param src 
         * @return 
         */  
        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();  
        }  
      
        private static byte charToByte(char c) {  
            return (byte) "0123456789ABCDEF".indexOf(c);  
        }  


/**
     * 字符串转换为16进制字符串
     *
     * @param s
     * @return
     */
    public static String stringToHexString(String s) {
        String str = "";
        for (int i = 0; i < s.length(); i++) {
            int ch = (int) s.charAt(i);
            String s4 = Integer.toHexString(ch);
            str = str + s4;
        }
        return str;
    }

    /**
     * 16进制字符串转换为字符串
     *
     * @param s
     * @return
     */
    public static String hexStringToString(String s) {
        if (s == null || s.equals("")) {
            return null;
        }
        s = s.replace(" ", "");
        byte[] baKeyword = new byte[s.length() / 2];
        for (int i = 0; i < baKeyword.length; i++) {
            try {
                baKeyword[i] = (byte) (0xff & Integer.parseInt(
                        s.substring(i * 2, i * 2 + 2), 16));
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        try {
            s = new String(baKeyword, "gbk");
            new String();
        } catch (Exception e1) {
            e1.printStackTrace();
        }
        return s;
    }

 

posted @ 2017-02-24 15:56  菩提尘  阅读(501)  评论(0)    收藏  举报