java bcd码_java中BCD编码
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编码相关推荐
- java 解码和加密 汉信码_java中的编码与解码
编码表概述和常见的编码表 概述:有字符及其对应的数值组成的一张表 常见的编码表 ASCII:美国标准信息交换表 ISO8859-1:拉丁码表,欧洲码表 GB2312:中国的中文编码表 GBK:中国的中 ...
- java asc码_Java中ASC码与字符互相转化
package com.ljq.test; /** * Java中ASC码与字符互相转化 * * @author jiqinlin * */ public class ASCTest { privat ...
- bcd码 php,php bcd码压缩-把十进制数字压缩到十六进制数据中
下面我们一起来看和篇关于php bcd码压缩-把十进制数字压缩到十六进制数据中实例,希望文章给各位同学带来帮助哦. 例,php bcd码压缩-把十进制数字压缩到十六进制数据中<?php /* p ...
- java判断类型_Java中类型判断的几种方式 - 码农小胖哥 - 博客园
1. 前言 在Java这种强类型语言中类型转换.类型判断是经常遇到的.今天就细数一下Java中类型判断的方法方式. 2. instanceof instanceof是Java的一个运算符,用来判断一个 ...
- BCD码与十进制转换编码
1. 十进制转换BCD码 #include <stdio.h>int main(int argc, char **argv[]) {int decimal = atoi(argv[1]); ...
- php压缩bcd码,什么是BCD码,什么是压缩的BCD码?二者有什么区别?
在数字系统中,各种数据要转换为二进制代码才能进行处理,而人们习惯于使用十进制数,所以在数字系统的输入输出中仍采用十进制数,这样就产生了用四位二进制数表示一位十进制数的方法,这种用于表示十进制数的二进制 ...
- java double 计算_Java中的Double类型计算
一.问题的提出: 如果我们编译运行下面这个程序会看到什么? public class Test{ public static void main(String args[]){ System.out. ...
- java urlencode 解码_java.net.URLEncode编码 与 URLDecode解码问题
网页中的表单使用POST方法提交时,数据内容的类型是 application/x-www-form-urlencoded,这种类型会: 1.字符"a"-"z", ...
- C语言bcd码减法过程,bcd码的减法运算规则举例.ppt
bcd码的减法运算规则举例 第1章:微型计算机基础 本章基本要求: ⑴ 单片微型计算机的含义 ⑵ 各系列单片机的特点 ⑶ 51系列单片机的概念及指标(重点) ⑷ 单片微机工业产品概念 第1章:微型计算 ...
最新文章
- 产品观,来自微信张小龙的
- 技术高手如何炼成?--转自知乎
- HDU1568 Fibonacci
- pythonunittest接口测试_基于python+unittest +requests接口测试
- bt5重启网卡命令_BackTrack 5 简单网络配置命令
- 【Python】实现输出成绩最高或最低分的学生姓名以及低于平均分的学生姓名
- linux内核C -- 第09课:链接过程中的强符号和弱符号
- c# 执行程序 未捕获的异常 处理;软件闪退 处理方式 工程启动不报错,执行程序报错
- linux学习:图书管理系统
- 从fig文件导出数据【MATLAB】
- python抓取彩票数据_编写python爬虫采集彩票网站数据,将数据写入mongodb数据库...
- 接口加密(TokenSpringCloud项目中进行token认证)
- word不能保存, 不能另存, 保存按钮 另存菜单不可用 的解决方法
- 域控制器丢失NETLOGON目录的解决办法
- win7屏保怎么设置_酷屏保怎么设置?酷开系统不可不知的玩法!
- 深入理解Java注解(二)——JavaPoet使用
- 爱心 (css动画)
- linux -bash: ipconfig: command not found
- 交互原型设计工具:Axure RP5中文版教程
- IBM System x3650 M5 安装 windows Server 2012系统经验
热门文章
- 数据库mysql常用操作_mysql数据库常用操作
- 5-Scala对象(Class)和类(Object)
- Leetcode每日一题:381.insert-delete-getrandom-o1-duplicates-allowed(时间插入、删除和获取随机元素-允许重复)
- vscode取消底部横滚动条(自动换行)
- ROS入门-4.安装ROS系统(ubuntu20.04版本安装ros的noetic版本)
- 关于树状数组的个人理解
- SSH应用之BBS之路-2、Hibernate配置
- db15接口各针脚示意图_【沙发管家】带你了解 HDMI 接口的用处都有哪些?
- python建立空集合_「python」集合类型及操作
- 云服务 华为p10 短信_苹果、小米、华为,手机云服务哪家强?