十六进制byte转十进制、两个十六进制byte转十进制(高低位)

在模拟modbus通信过程的时候,需要有如下转换过程

1、byte[]数组中存的是十六进制需要转十进制

2、两个十六进制的byte需要组合成一个十进制,比如高位:0x01,低位:0x78  组合成0x0178转十进制

解决办法

    /**
	 * byte转为十进制int
	 * @param bytes
	 * @return
	 */
	public static int byte2int(byte bytes){
		// 将byte转换为8位二进制字符串 依赖 commons-lang-x.x.jar包
		String binaryString = StringUtils.leftPad(Integer.toBinaryString(bytes & 0xff), 8, '0');
		// 将二进制字符串转换为十进制整数值
		int value = Integer.parseInt(binaryString, 2);
		return value;
	}
	
	/**
	 * 两个十六进制转为十进制
	 * @param b1 十六进制低位
	 * @param b2 十六进制高位
	 * @return
	 */
	public static int byteToInt(byte b1,byte b2){
		int deci = (b1|b2<<8);
		return deci;
		
	}
 

 

欢迎关注微信公众号,公众号的好处是可以持续保持联系。

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值