`
yaodaqing
  • 浏览: 346310 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

十六进制字符串和byte[]相互转换

阅读更多
/**
	 * 2进制转16进制字符串
	 * @param bytes
	 * @return
	 */
	public static String byteToHexString(byte[] bytes){
		if(bytes==null){
			return null;
		}
        StringBuffer sb = new StringBuffer();   
        for (int i = 0; i < bytes.length; i++) {   
             String strHex=Integer.toHexString(bytes[i]);   
             if(strHex.length() > 3){   
                    sb.append(strHex.substring(6));   
             } else {   
                  if(strHex.length() < 2){   
                     sb.append("0" + strHex);   
                  } else {   
                     sb.append(strHex);   
                  }   
             }   
        }   
       return  sb.toString();   
   } 
	
	/**
	 * 16进制字符串转2进制
	 * @param s
	 * @return
	 */
	public static byte[] hexStringToByte(String hexString){
		if (hexString == null || hexString.equals("")) {
			return null;
		}
		hexString = hexString.toUpperCase();
		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
	 * @param c
	 * @return
	 */
	private static byte charToByte(char c) {
		return (byte) "0123456789ABCDEF".indexOf(c);
	}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics