iso8583 bitMap生成与解析详解

本文详细介绍了ISO8583报文中Bitmap的生成与解析原理,包括64位和128位Bitmap的表示方法。通过将有值的域对应的0替换为1,形成二进制数据,并转换为16进制。文中提到,8位对应1个16进制字符,128位则需要相应位置的1表示扩展域。作者提供了个人的理解,并邀请读者指正错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大家都知道可以用8个字节或者16个字节表示64个域或者128个域,那么具体是怎么来的呢?在8583报文中,如果是64位,那么就用64个0表示所有的域,哪一个域有值,那么代表这个域的0换成1,比如0000005...那么代表的是64域中第7域有值;如果是128域,那么应该是128个0,第一个0变成1,代表64域后面有扩展域。即使是这样那么最后还是生成000101001..这样的二进制数据,那么这个时候就要把这些二进制转变成16进制了,比如8,二进制就是1000,这样每4个二进制代表一位16进制。同理128位图,除了把第一位变成1后面也是再相应的为变成1就可以了。具体可以参考https://jingyan.baidu.com/article/47a29f24292608c0142399cb.html。其实bitmap很简单就可以组出来

代码实现可以参考我下面这个:

package com.md.pay.util;

import java.util.ArrayList;
import java.util.List;

/**
 * iso8583 位图生成与解析工具
 * 
 * @author Lewis
 */
public class Iso8583Util {

	/**
	 * 初始64和128域
	 * 
	 * @param d
	 * @return
	 * @throws Exception
	 */
	public static String initBitMap(int d) throws Exception {
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值