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编码转换
/* java二进制,字节数组,字符,十六进制,BCD编码转换2007-06-07 00:17/** *//** * 把16进制字符串转换成字节数组 * @param hex * @return */
这段时间公司在做808协议的编码与解码,就专门做了一个工具类,方便自己的调用,有byte,Word,DWord,BCD类型的编码解码,还有普通的byte,int,string转换/2进制10进制16进制....等等
关于Java的接口描述,下列哪些说法符合《阿里巴巴Java开发手册》:BCD A .在接口类中的方法和属性使用public修饰符。 B .对于Service类,内部的实现类加Impl的后缀与接口区别。例如:ProductServiceImpl实现...
LLVAR_NUMERIC(变长域,采用BCD编码,前有1字节的长度,长度为域值的长度,而非字节长,如域值为123456,编码后长度为3字节,但是表示域长的字节值为6) 如果用到其它数据类型可以在IsoType中进行...
java源码 埃因雷·艾 德克萨斯州奥斯汀eindrayaye@gmail.com 概述 我是一个积极进取的人,在软件开发领域拥有成熟的能力。 我是一个以团队为导向的专业人士,具有深刻的创造性思维,加上可以做的态度。 ...
BCD编码 浮点数:(ieee754) 解释尾数,指数 你如何比较两个浮点值? 解释在商业编程中使用浮点数的风险 尾端 在计算中,字节序是计算机内存中数字数据字的字节顺序或序列。 Endianness 主要表示为 big-endian (BE) ...
支持BCD编码格式【时间,int,float,double等】。支持大端和小端两种存储方式,支持设置为局部存储方式和局部存储方式。支持short,int,long读取长度的自定义。支持对实体细分进行排序,避免解
格雷码(循环碼)是任意两个相邻数的代码只有一位二进制数不同的BCD码,它与奇偶校验码同属可靠性编码。 格雷碼(Gray code)是由貝爾實驗室的Frank Gray在1940年提出,用於在PCM(脈衝編碼調變)方法傳送訊號時防止...
加 SPOC 中的两个测验。 三、自学教材第 8 章(不含 8.5)和第 9 章。教材在下个学期《系统硬件综合训练》 课程继续使用。 四、实现 1.5 新手实验和第二章数字逻辑基础实验,分别完成: 1、选择器、比较器及测试...
1、由ASICC编码的字符串转换为十六进制byte数组 2、将指定字节数组中的一个字节序列解码为一个字符串 3、将二进制字符串转化为byte类型 4、将SIM卡号转化为byte数组 5、将BCD[6]转换为12位数字字符串 6、关于IP...
二进制编码器/解码器(a-> 01100001) 十六进制编码器/解码器 八进制编码器/解码器 反向文本(abc def-> fed cba)编码器/解码器 大写文本(abc-> ABC)编码器/解码器 小写文本(ABC-> abc)编码器/解码器 上下颠倒...
D:查出已知的病毒,清除部分病毒 答案:D 在微型计算机中,应用最普遍的字符编码是() A:ASCII码 B:BCD码 C:汉字编码 D:补码 答案:A 一个完整的计算机体系包括() A:主机、键盘和显示器 B:计算机与外部设备 C:...
注意:请原谅糟糕的编码 - 特别是在 BinaryTools 类中。 其中一些代码是直接从 Dex2Jar + JD-GUI 剪切和粘贴的,我已经使一些十六进制编码/解码可读但不是全部。 此应用程序部分是从 MySnapper 应用程序逆向设计的。...
支持的内容类型:ASCII,EBCDIC,UTF-8,BCD(或任何JVM支持的编码) 自动类型转换 支持主要,次要和三次十六进制和二进制位图 支持Track1和Track2数据 自定义类型格式化程序(包括被覆盖的标准字段格式化程序) ...