BCD码简介及其与十进制数字字符串之间的转换

开发 开发工具
本文首先对BCD码进行简单的介绍,然后用代码演示它与十进制数字字符串之间的转换。

大家都知道在计算机中,数据的常用编码格式有二进制、八进制、十进制和十六进制等,这些编码格式之间可以相互转换。在电力通信协议中,很多数据都是用BCD格式来编码的,这些数据需要转换为普通的十进制数字串。本文首先对BCD码进行简单的介绍,然后用代码演示它与十进制数字字符串之间的转换。

BCD码简介

BCD码(Binary Coded Decimal‎)是一种二进制的数字编码形式,它是用二进制编码的十进制代码。这种编码形式利用四个位来储存一个十进制数,使得二进制和十进制之间的转换得以快捷地进行。常见的BCD编码有8421BCD码,2421BCD码和余3码,其中又以8421BCD码最为常见。本文介绍8421BCD码与十进制数字字符串之间的转换。

十进制数与8421BCD码的对应关系如下表所示:

十进制数与8421BCD码的对应关系表

从上表中,我们也可以看出十进制数与8421BCD码的对应关系:两个字节的十进制数字串可以用一个字节的8421BCD码来表示。例如,数字字符串“19”是两个字节,它对应的8421BCD码为“00011001”(只有一个字节),其中高四位的“0001“代表十进制的“1“,低四位的“1001“代表十进制的“9“。

十进制数字串与8421BCD码之间的转换

根据前面对BCD码的介绍,我们可以编写代码分别实现BCD码转换为十进制数字串和十进制数字串转换为BCD码。具体的代码已经提交到了GitHub上,欢迎下载阅读:https://github.com/zhouzxi/BCD2String。其中,BCD2String函数用于将8421BCD码转换为十进制数字串,String2BCD函数用于将十进制数字串转换为8421BCD码。

本程序是运行在Linux系统上的,大家可以使用“gcc -g -o BCD2String BCD2String.c”命令对代码进行编译,之后运行“./BCD2String”命令,结果如下:

  1. $ ./BCD2String 
  2. szDigitBuf=7539
  3. szBCDData=19
  4. szDigitBuf=19

 

大家可以根据运行的结果来阅读程序,看一下8421BCD码与十进制数字串之间的转换原理。

【本文是51CTO专栏作者周兆熊的原创文章,作者微信公众号:周氏逻辑(logiczhou)】

戳这里,看该作者更多好文

责任编辑:赵宁宁 来源: 51CTO专栏
相关推荐

2019-03-25 20:31:58

IP地址转换数字

2009-08-20 11:29:21

C#16进制字符串

2010-07-14 16:10:37

Perl

2020-10-22 13:33:48

Java基础入门

2021-08-20 06:58:31

C++Python函数

2022-12-25 15:56:30

JavaScript字符串

2011-03-23 13:52:09

ORACLESQL十进制

2013-07-25 15:01:47

iOS开发学习十六进制和字符串转换

2010-09-14 14:32:02

sql server日

2011-04-13 14:37:35

十进制浮点.NET

2015-10-27 09:41:16

Javaintern

2024-02-22 08:17:31

十六进制数字计算

2015-11-16 10:24:45

Java常量池字符串

2010-03-16 10:28:40

Python字符串

2022-12-15 16:23:32

JavaScrip字符串开发

2021-05-12 07:50:01

JsParseInt() 怪异

2010-03-29 09:48:20

Ubuntu 10.1

2021-11-24 09:08:38

LeetCode字符串算法

2024-08-16 22:00:38

2010-11-26 11:08:20

MySQL字符串
点赞
收藏

51CTO技术栈公众号