计算8583报文长度,两个字节表示

方法1
/**
	 * 计算报文长度,两字节报文长度(高位在前)
	 * 
	 * @param len
	 * @return
	 */
	public byte[] getByteMessageLen(int len) {
		byte[] buf = new byte[2];
		//取高8位
		buf[0] = (byte) (len >> 8);
		//取低8
		buf[1] = (byte) (len & 0xff);
		return buf;
	}
方法2
// 获取第一个高位长度
byte first = (byte) (len / 100);
// 获取第二个高位长度
byte second = (byte) (((len % 100) / 10) << 4 | (len % 10));


//方法1
/** 
  *计算8583表针报文前两字节长度,
  *如:数据 0, 115, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0........ 
  *前面的0,115表示报文的长  度,获取报文长度, 两字节16进制报文长度(高位在前),,
  *例如300字节长报文,长度填0x012C ,变为 blen[1] & 0xff 编程无符号整形
*/ 
public static int getMessageLen(byte[] blen) {            
        String hexlen = Integer.toHexString(blen[0]) + Integer.toHexString(blen[1] & 0xff);  
        return Integer.parseInt(hexlen, 16);
   }
方法2
int length = ((buf[pos] & 0x0f) * 100) + (((buf[pos + 1] & 0xf0) >> 4) * 10)+ (buf[pos + 1] & 0x0f);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值