十六进制数据格式化



/**
 * @author benjaminwan
 *
 */
public class DataCnv {
	//-------------------------------------------------------
	//
    static public int isOdd(int num)
	{
		return num & 0x1;
	}
    //-------------------------------------------------------
    static public int HexToInt(String inHex)
    {
    	return Integer.parseInt(inHex, 16);
    }
    //-------------------------------------------------------
    static public byte HexToByte(String inHex)
    {
    	return (byte) Integer.parseInt(inHex,16);
    }
    //-------------------------------------------------------
//    static public String Byte2Hex(Byte inByte)
//    {
//    	return String.format("%02x", inByte).toUpperCase();
//    }
	static public String Byte2Hex(Byte inByte)
	{
		String strHex = Integer.toHexString(inByte & 0xFF);
		strHex = (strHex.length() == 1) ? "0" + strHex : strHex; // 每个字节由两个字符表示,位数不够,高位补0
		return strHex;
	}

    //-------------------------------------------------------
	static public String ByteArrToHex(byte[] inBytArr)
	{
		StringBuilder strBuilder=new StringBuilder();
		int j=inBytArr.length;
		for (int i = 0; i < j; i++)
		{
			strBuilder.append(Byte2Hex(inBytArr[i]));
			if (i != j - 1){
				strBuilder.append(" ");
			}
		}
		return strBuilder.toString();
	}
	//-------------------------------------------------------
	static public String ByteArrToHex(byte[] inBytArr, int len)
	{
		StringBuilder strBuilder=new StringBuilder();
		int j=len<=inBytArr.length?len:inBytArr.length;
		for (int i = 0; i < j; i++)
		{
			strBuilder.append(Byte2Hex(inBytArr[i]));
			strBuilder.append(" ");
		}
		return strBuilder.toString();
	}
  //-------------------------------------------------------
    static public String ByteArrToHex(byte[] inBytArr, int offset, int byteCount)
	{
    	StringBuilder strBuilder=new StringBuilder();
		int j=byteCount;
		for (int i = offset; i < j; i++)
		{
			strBuilder.append(Byte2Hex(inBytArr[i]));
			if(i!=j-1)
				strBuilder.append(":");
		}
		return strBuilder.toString();
	}

	/**
	 * byte数组转换成十六进制字符串
	 * @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();
	}

	//-------------------------------------------------------
	//
	static public byte[] HexToByteArr(String inHex)
	{
		int hexlen = inHex.length();
		byte[] result;
		if (isOdd(hexlen)==1)
		{
			hexlen++;
			result = new byte[(hexlen/2)];
			inHex="0"+inHex;
		}else {
			result = new byte[(hexlen/2)];
		}
	    int j=0;
		for (int i = 0; i < hexlen; i+=2)
		{
			result[j]=HexToByte(inHex.substring(i,i+2));
			j++;
		}
	    return result;
	}

	//-------------------------------------------------------
	static public int Byte2int(byte[] b, int len, int offset) {
		int res = 0;
		int bLen = len;

		for (int i = 0; i < bLen; i++) {
			res = res << (8 * i) | (b[i+offset] & 0xFF);
		}

		return res;
	}
	//-------------------------------------------------------
	static public int _2ByteASCII2int(byte[] b, int offset) {
		int res = 0;
		res = ((b[offset]-0x30)&0xFF)*10 + ((b[offset+1]-0x30)&0xFF);
		return res;
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值