Java中实现的BCD编码,供有兴趣的参考,欢迎批评指正
public class BCDCode { /** * <编码> * <数字字符串编成BCD格式字节数组> * @param bcd 数字字符串 * @return * @see [类、类#方法、类#成员] */ public static byte[] str2bcd(String bcd) { if (Global.isEmpty(bcd)) { return null; } else { // 获取字节数组长度 int size = bcd.length() / 2; int remainder = bcd.length() % 2; // 存储BCD码字节 byte[] bcdByte = new byte[size + remainder]; // 转BCD码 for (int i = 0; i < size; i++) { int low = Integer.parseInt(bcd.substring(2 * i, 2 * i + 1)); int high = Integer.parseInt(bcd.substring(2 * i + 1, 2 * i + 2)); bcdByte[i] = (byte)((high << 4) | low); } // 如果存在余数,需要填F if (remainder > 0) { int low = Integer.parseInt(bcd.substring(bcd.length() - 1)); bcdByte[bcdByte.length - 1] = (byte)((0xf << 4) | low); } // 返回BCD码字节数组 return bcdByte; } } /** * <解码> * <BCD格式的字节数组解成数字字符串> * @param bcd 字节数组 * @return * @see [类、类#方法、类#成员] */ public static String bcd2str(byte[] bcd) { if (null == bcd || bcd.length == 0) { return ""; } else { // 存储转码后的字符串 StringBuilder sb = new StringBuilder(); // 循环数组解码 for (int i = 0; i < bcd.length; i++) { // 转换低字节 int low = (bcd[i] & 0x0f); sb.append(low); // 转换高字节 int high = ((bcd[i] & 0xf0) >> 4); // 如果高字节等于0xf说明是补的字节,直接抛掉 if (high != 0xf) { sb.append(high); } } // 返回解码字符串 return sb.toString(); } } }
相关推荐
- 在Java中处理BCD编码通常涉及将十进制数转换为二进制数组,或将二进制数组解码回十进制数。示例代码没有包含直接处理BCD编码的函数,但你可以创建一个方法,将字节转换为BCD编码或从BCD编码还原。 4. **对象序列...
/* java二进制,字节数组,字符,十六进制,BCD编码转换2007-06-07 00:17/** *//** * 把16进制字符串转换成字节数组 * @param hex * @return */
ASC码(ASCII码)和BCD码(二进制编码的十进制数)是两种常见的编码方式,用于将日期和时间转换为数字格式,便于计算机处理。下面将详细介绍这两种编码方式以及它们在日期时间转换中的应用。 首先,ASCII码...
在提供的压缩包文件中,`ADC0_TEMP.c`可能是包含转换函数的具体实现,`BCD.c`可能包含了与BCD编码相关的辅助函数,而`www.pudn.com.txt`可能是来源或说明文档。为了详细了解这些代码的工作原理,你需要阅读并分析这...
描述中的“change number int BCD”提示我们要讨论的是如何将十进制整数(int)转换为BCD编码的过程。在编程中,这种转换经常用于处理和存储数字,特别是在财务系统、计算器应用或者任何需要精确显示十进制数字的...
在BCD编码中,有几种常见的实现方式: 1. **直接编码**:最简单的形式,每个十进制位直接用四位二进制表示。 2. **8421编码**:每位十进制数的二进制表示按照8、4、2、1的权重分配。 3. **格雷码BCD**:使用格雷码...
在32位十六进制加法器的基础上实现BCD码转换,意味着原始设计可能是一个简单的无溢出的二进制加法器,然后增加了一个额外的步骤来处理和转换结果,确保每个四位二进制组符合BCD编码规则。这可能涉及到检查并纠正超出...
每个字段可能需要不同的解码方式,例如十进制、二进制、BCD编码等。 3. **数据转换**:解析出的二进制数据需要转换成可读的字符串或数值形式,便于进一步处理和展示。 三、实例应用 在提供的"iso8583实例"中,...
ISO8583协议中的一些数据元素需要进行特定的编码或解码,比如十进制转二进制、BCD编码等。在`Iso8583Util.java`中,可能会存在处理这些编码转换的辅助函数。 5. **`Helloworld.java`**: 这个文件可能是展示如何...
BCD编码方式将每一位十进制数用四位二进制来表示,方便硬件电路直接处理。本文将探讨三种不同的十进制转BCD算法。 ### 算法1:迭代法 第一种算法采用迭代的方式,通过不断减去特定值来确定BCD每位的数值。在`...
总结这三种编码方式,8421BCD码适用于精确表示十进制数值,格雷码用于减少信号传输中的错误,而余3码则优化了二进制加减运算。了解这些编码技术对于理解和设计数字系统至关重要,它们在现代计算机科学和工程中仍然有...
例如 D:\jdk1.5.0_06\bin>native2ascii.exe -encoding utf8 abc.txt bcd.txt,可以将 abc.txt 文件中的中文字符转换为 utf-8 编码,并将结果保存在 bcd.txt 文件中。 dos 命令是一个重要的命令,可以用来进入特定的...
- D: 正确,`static`不能修饰接口中的成员(Java 8之前),但在Java 8及之后版本中,接口可以有静态成员。 #### 题目15 **问题:** 下列描述中正确的是? - A: 按值传递实际上传递的是实际参数的值 - B: 按引用传递...
在Java编程语言中,数据类型转换是一项基本而重要的功能,尤其在处理不同数据格式时显得尤为重要。本文档提供的代码示例主要展示了如何将ASCII码流转换为BCD(Binary-Coded Decimal)码流以及DEC(Decimal)码流的...
5. **BCD(Binary-Coded Decimal)编码**:在处理金融数据时,BCD编码有时会被用到,因为它能精确地表示十进制数字。Apache Commons Codec库提供了一个BCDCodec类来处理这种编码。 6. **ISDN号码编码**:ISDN号码在...
- **选项**: a.java面向对象语言容许单独的过程与函数存在b.java面向对象语言容许单独的方法存在c.java语言中的方法属于类中的成员(member)d.java语言中的方法必定隶属于某一类(对象),调用方法与过程或函数相同 ...
Apache Commons Codec库是Java开发中的一个实用工具集,主要用于编码和解码各种常见的编码格式。在版本1.8中,这个库提供了多个类和方法,帮助开发者处理字符串、数字和其他形式的数据转换。以下是对`org.apache....
- Java是由Sun Microsystems公司于1995年推出的一种面向对象的编程语言,它的设计者们在开发过程中受到了C++的影响,并对其进行了改进,去除了C++中的一些复杂性和不安全因素,如指针、多重继承等。 2. **Java编译...