欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-15 09:26:32
...

在模拟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;
		
	}