Java中实现的BCD编码,供有兴趣的参考,欢迎批评指正

public class BCDCode

{

/**

*

*

* @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;

}

}

/**

*

* * @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编码相关推荐

  1. java 解码和加密 汉信码_java中的编码与解码

    编码表概述和常见的编码表 概述:有字符及其对应的数值组成的一张表 常见的编码表 ASCII:美国标准信息交换表 ISO8859-1:拉丁码表,欧洲码表 GB2312:中国的中文编码表 GBK:中国的中 ...

  2. java asc码_Java中ASC码与字符互相转化

    package com.ljq.test; /** * Java中ASC码与字符互相转化 * * @author jiqinlin * */ public class ASCTest { privat ...

  3. bcd码 php,php bcd码压缩-把十进制数字压缩到十六进制数据中

    下面我们一起来看和篇关于php bcd码压缩-把十进制数字压缩到十六进制数据中实例,希望文章给各位同学带来帮助哦. 例,php bcd码压缩-把十进制数字压缩到十六进制数据中<?php /* p ...

  4. java判断类型_Java中类型判断的几种方式 - 码农小胖哥 - 博客园

    1. 前言 在Java这种强类型语言中类型转换.类型判断是经常遇到的.今天就细数一下Java中类型判断的方法方式. 2. instanceof instanceof是Java的一个运算符,用来判断一个 ...

  5. BCD码与十进制转换编码

    1. 十进制转换BCD码 #include <stdio.h>int main(int argc, char **argv[]) {int decimal = atoi(argv[1]); ...

  6. php压缩bcd码,什么是BCD码,什么是压缩的BCD码?二者有什么区别?

    在数字系统中,各种数据要转换为二进制代码才能进行处理,而人们习惯于使用十进制数,所以在数字系统的输入输出中仍采用十进制数,这样就产生了用四位二进制数表示一位十进制数的方法,这种用于表示十进制数的二进制 ...

  7. java double 计算_Java中的Double类型计算

    一.问题的提出: 如果我们编译运行下面这个程序会看到什么? public class Test{ public static void main(String args[]){ System.out. ...

  8. java urlencode 解码_java.net.URLEncode编码 与 URLDecode解码问题

    网页中的表单使用POST方法提交时,数据内容的类型是 application/x-www-form-urlencoded,这种类型会: 1.字符"a"-"z", ...

  9. C语言bcd码减法过程,bcd码的减法运算规则举例.ppt

    bcd码的减法运算规则举例 第1章:微型计算机基础 本章基本要求: ⑴ 单片微型计算机的含义 ⑵ 各系列单片机的特点 ⑶ 51系列单片机的概念及指标(重点) ⑷ 单片微机工业产品概念 第1章:微型计算 ...

最新文章

  1. 产品观,来自微信张小龙的
  2. 技术高手如何炼成?--转自知乎
  3. HDU1568 Fibonacci
  4. pythonunittest接口测试_基于python+unittest +requests接口测试
  5. bt5重启网卡命令_BackTrack 5 简单网络配置命令
  6. 【Python】实现输出成绩最高或最低分的学生姓名以及低于平均分的学生姓名
  7. linux内核C -- 第09课:链接过程中的强符号和弱符号
  8. c# 执行程序 未捕获的异常 处理;软件闪退 处理方式 工程启动不报错,执行程序报错
  9. linux学习:图书管理系统
  10. 从fig文件导出数据【MATLAB】
  11. python抓取彩票数据_编写python爬虫采集彩票网站数据,将数据写入mongodb数据库...
  12. 接口加密(TokenSpringCloud项目中进行token认证)
  13. word不能保存, 不能另存, 保存按钮 另存菜单不可用 的解决方法
  14. 域控制器丢失NETLOGON目录的解决办法
  15. win7屏保怎么设置_酷屏保怎么设置?酷开系统不可不知的玩法!
  16. 深入理解Java注解(二)——JavaPoet使用
  17. 爱心 (css动画)
  18. linux -bash: ipconfig: command not found
  19. 交互原型设计工具:Axure RP5中文版教程
  20. IBM System x3650 M5 安装 windows Server 2012系统经验

热门文章

  1. 数据库mysql常用操作_mysql数据库常用操作
  2. 5-Scala对象(Class)和类(Object)
  3. Leetcode每日一题:381.insert-delete-getrandom-o1-duplicates-allowed(时间插入、删除和获取随机元素-允许重复)
  4. vscode取消底部横滚动条(自动换行)
  5. ROS入门-4.安装ROS系统(ubuntu20.04版本安装ros的noetic版本)
  6. 关于树状数组的个人理解
  7. SSH应用之BBS之路-2、Hibernate配置
  8. db15接口各针脚示意图_【沙发管家】带你了解 HDMI 接口的用处都有哪些?
  9. python建立空集合_「python」集合类型及操作
  10. 云服务 华为p10 短信_苹果、小米、华为,手机云服务哪家强?