bcd 8421码
bcd码表:

比如一个字符串 String s = "0200"
按对照表转换成二进制
02 : 0000 0010
00 : 0000 0000
s转换为字节的时候
02和00分别转换为一个字节
也就是说字符串"0200"bcd编码之后会是2个字节
代码:
public static byte[] str2bcdOne(String s) {
//如果不是2的倍数,则补0
if (s.length() % 2 != 0) {
s = s + "0";
}
ByteArrayOutputStream baos = new ByteArrayOutputStream();
//获得字符数组
char[] cs = s.toCharArray();
int high = 0;
int low = 0;
for (int i = 0; i < cs.length; i += 2) {
if ((cs[i] >= '0') && (cs[i] <= '9'))
//得到高位的十进制表示
high = cs[i] - '0';
else {
//溢出
high = cs[i] - '0' - 7;
}
if ((cs[(i + 1)] >= '0') && (cs[(i + 1)] <= '9'))
//得到低位的十进制表示
low = cs[(i + 1)] - '0';
else {
low = cs[(i + 1)] - '0' - 7;
}
System.out.println("high:" +high);
System.out.println("high2:" +DataConverter.intToBinary(high));
System.out.println("low:" + DataConverter.intToBinary(low));
System.out.println("high << 4 | low:" + DataConverter.intToBinary(high << 4 | low));
baos.write(high << 4 | low);
}
return baos.toByteArray();
}
bcd 8421码的更多相关文章
- js用8421码实现10进制转2进制
今天早上突然心血来潮决定用 ''和js来撸一个进制转换.(纯属心血来潮,有兴趣的可以看看.) 我们知道,通过8421码.可以快速的得到一个10进制的2进制.如下图: 如上图所示:我们将10进制的 '1 ...
- simulink产生周期矩形波和8421码
初次入门simulink,由于学习了数字逻辑,试图进行仿真,首先需要的就是8421码,但是没找到simulink里面相关模块,如果各位知道怎么弄可以评论告诉我分享分享哈哈 我用的是matlab2016 ...
- BCD工具类(8421)
目录 1.BCD介绍 (1)BCD码(Binary-Coded Decimal)亦称二进码十进数.用4位二进制数来表示1位十进制数中的0~9这10个数码.用二进制编码的十进制代码. (2)BCD码可分 ...
- FPGA中将十进制数在数码管中显示(verilog版)--二进制转换为BCD码
这周有朋友问怎样在fpga中用数码管来显示一个十进制数,比如1000.每个数码管上显示一位十进制数.如果用高级语言来分离各位,只需要分别对该数做1000,100,10对应的取商和取余即可分离出千百十个 ...
- C语言之linux内核--BCD码转二进制与二进制转BCD码(笔试经典)
在分析代码之前,我们先来了解一下,BCD码和二进制到底区别在哪? 学习过计算机原理的和数字电子技术这两门课的都会知道这两个到底是什么含义,也有的同学学过了,考过了,过了一段时间又忘记了,今天,我们通过 ...
- BCD码
BCD码(Binary-Coded Decimal)亦称二进码十进数或二-十进制代码,是用4位二进制数来表示1位十进制数中的0~9这10个数码,用一种使用二进制编码十进制的数字编码形式.BCD码这种 ...
- BCD 码、Gray 码、ASCII 码都是什么呢?
BCD 码:即(Binary Coded Decimal)码,也称为 8421 码,是十进制代码中最常见的一种.每一位的 1 代表的十进制数称为这一位的权.BCD 码中每一位的权都是固定不变的,它属于 ...
- 几种简单的编码(为什么使用ASCII码)
二-十进制码(BCD码) 在目前的数字系统中,一般是采用二进制数进行运算的,但是由于人们习惯采用十进制数,因此常需进行十进制数和二进制数之间的转换,其转换方法上面已讨论过了.为了便于数字系统处理十进制 ...
- 常用校验码(奇偶校验,海明校验,CRC)学习总结
常用校验码(奇偶校验,海明校验,CRC)学习总结 一.为什么要有校验码? 因为在数据存取和传送的过程中,由于元器件或者噪音的干扰等原因会出现错误,这个时候我们就需要采取相应的措施,发现并纠正错误,对于 ...
随机推荐
- solr 导入数据
从sqlserver导入数据到solr, solr 采用的版本6.0.1,并且本机解压到:F:\Tool\solr-6.0.1: 1. 命令启动solr,创建core 启动,进入solr文件目录下,执 ...
- cocos2d-x之场景转换特效
bool HelloWorld::init() { if ( !Layer::init() ) { return false; } Size visibleSize = Director::getIn ...
- python datetime模块用strftime 格式化时间
1 2 3 #!usr/bin/python import datetime datetime.datetime.now() 这个会返回 microsecond.因此这个是我们不需要的.所以得做一下修 ...
- linux—【用户和组的管理操作】(5)
用户:user 组:group 增加:add 修改:modify mod 删除:delete del useradd 增加用户 usermod 修改用户 userdel ...
- Python pip – error: invalid command ‘bdist_wheel’
原文@http://software-engineer.gatsbylee.com/python-pip-error-invalid-command-bdist_wheel/ Python pip – ...
- 最小的k个数
// 最小的k个数.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #include & ...
- TestNG之参数化
TestNG提供了两种参数化的方式,一种是通过XML,一种是通过代码实现,下面对这两种方式做介绍. 一.通过xml /** * <suite name="Suite" par ...
- 【读书笔记《Android游戏编程之从零开始》】20.游戏开发基础(游戏数据存储)
对于数据的存储,Android 提供了4种保存方式. (1)SharedPreference 此方法适用于简单数据的保持,文如其名,属于配置性质的保存,不适合比较大的情况,默认存放在手机内存里 (2) ...
- 合工大OJ 1337 一加二减三
Description 题目描述:给一个串,形如一+二-三,求值 Input 第一行为一个正整数T,表示数据的组数,接下来有T行每行都是一个形如一+二-三的串,一,二,三均为正整数 Output 对于 ...
- codeforces 712A A. Memory and Crow(水题)
题目链接: A. Memory and Crow time limit per test 2 seconds memory limit per test 256 megabytes input sta ...