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

article/2025/10/26 8:41:31

在ASCII码中,0到10的二进制分别表示如下。 而BCD码中,0-9的每位仍用一个字节(8位)来表示。因此,因此规则的重合,在数据存储上,BCD码仅用字符串存储即可,即数字12存储为字符串“12”。 但在BCD码运算时,需要转换为数字运算后进行存储。

 

 

 

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

BCD码简介
BCD码(Binary Coded Decimal‎)是一种二进制的数字编码形式,它是用二进制编码的十进制代码。这种编码形式利用四个位来储存一个十进制数,使得二进制和十进制之间的转换得以快捷地进行。常见的BCD编码有8421BCD码,2421BCD码和余3码,其中又以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”命令,结果如下:

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

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


http://chatgpt.dhexx.cn/article/wSPwWcZr.shtml

相关文章

浅谈BCD码同二进制转换

浅谈BCD码同二进制转换 一、BCD码1、BCD码概述2、BCD分类1、有权码2、无权码 3、BCD运算问题 二、二进制BCD码1、原理实现2、模块划分3、仿真调试4、仿真验证 三、BCD码转二进制1、原理实现2、模块划分3、仿真验证 一、BCD码 1、BCD码概述 BCD码(Binary-Coded Dec…

BCD格式及与十进制/十六进制的转换

本文框架 前言1. BCD码是什么?2. 不同进制与BCD码之间的转换2.1 十进制与BCD码的转换2.1.1 十进制转换为BCD码2.1.2 BCD码转换为十进制 2.2 十六进制与BCD码的转换 前言 本系列Autosar 诊断入门介绍,会详细介绍诊断相关基础知识,如您对诊断实…

BCD码详解

BCD码的种类 BCD码可分为有权码和无权码两类:有权BCD码有8421码、2421码、5421码,其中8421码是最常用的;无权BCD码有余3码、格雷码等。 8421 BCD码 8421 BCD码是最基本和最常用的BCD码,它和四位自然二进制码相似,各位…

二进制码转BCD码

在单片机里面,如:显示个温度值,这时,要取一个数的个位、十位、百位,可以用/和 %(求商和求余)来解决。 但是,在FPGA里面用求商和求余将会非常消耗资源,这样就必须用到二进…

【C语言】BCD码、十进制互相转换

目录 0. 前言: 1. BCD码 2. 算法原理 3. 进制转换 3.1 两位BCD码的转换: 3.2 其他进制转换 3.3 任意进制转二进制 参考资料: 0. 前言: 记录今天用15单片机写DS1302时钟芯片程序的时候遇到的问题 时间显示是这个样的 0 1…

什么是 BCD(二进制编码的十进制)

BCD 是一位十进制数,由代表 0 到 9 的四位二进制数字表示。 当寄存器值以十六进制表示时,可以原样读取为十进制数,这对于处理十进制数的函数来说非常方便。 二进制数的 4 位可以表示为 0 到 15,但只有低 10 位被视为有效数字。 …

十进制转8421_BCD码

目录 一、BCD码简介 二、十进制转8421BCD码转换思路 三、程序编写 四、仿真验证 总结 一、BCD码简介 BCD码(Binary-Coded Decimal‎),用4位二进制数来表示1位十进制数中的0~9这10个数码,是一种二进制的数字编码形式,常…

十进制数转换BCD码

有必要仔细阐述这一节,目前就是用在数码管显示,在单片机使用时,我们通常是将十进制数字进行/和%运算,得到每个位置的十进制数字,在这里可能是为了节省使用存储器的量,运用的是加三移位法具体其实就是将每个…

C语言:十进制、BCD码互换

目录 1、复杂版 2、简易版 最近写单片机 RTC 日期、时间配置,需要实现十进制、BCD码互换,将示例Demo分享给各位朋友: BCD是指用二进制来表示十进制数的编码,即:用4位二进制来表示一位十进制数,因此4位二进…

BCD码转化为十进制数

2019独角兽企业重金招聘Python工程师标准>>> 什么是BCD码:用4位二进制数来标识十进制数中的0-9这十个数的编码形式,简称为BCD码。BCD码优点:这种编码形式使二进制和十进制之间的转换能够快捷进行。采用BCD码,既可保存数…

BCD码以及各进制之间的相互转换

目录 前言 一、BCD码 二、进制互转 1、任意进制转十进制:系数X基数 ^ 权值(累加) 2、任意进制转二进制 前言 主要学习什么是BCD码,以及二进制、八进制、十进制、十六进制之间的相互转换 一、BCD码 BCD码就是以四位二进制数为一…

BCD码与十进制数间转换

一、前言: 这几天在项目协议对接的时候有一部分功能是获取系统时间功能与校时功能。小马哥获取到时间后打印了一下 2020-5-26 20:06:32,一看时间是对的,然后美滋滋的组装协议发送平台测试了。测试的时候发现月、日、时分秒数据都正常&#x…

黑马Python笔记3

输入时,占位符在引号里面,而要接受的变量在引号外面eg:"…%d"%player) expected an indented block:缩进错误。if对缩进有要求,python对缩进要求严格 if表判断 双等号一定要记住!!! i…

2021-03-30 黑马Python学习笔记

操作系统OS(Operation System) 操作系统作用 1、直接操作硬件 2、把操作硬件的代码封装成系统调用,供其他成员间接操作硬件 没有安装操作系统的计算机被称为裸机 如果想在裸机上运行程序,必须用机器语言书写程序 如果计算机上…

黑马python在线培训

过去的2017年这一年,Python 开发者在全球快速增长,国内小伙伴学习 Python 的热情一路高涨。同时,Python 成为大量开发者推荐的入门编程语言和第二编程语言。2017年12月,Python 在 TIOBE 全球编程语言年度排行榜上升至第四&#xf…

黑马python培训安排

在分享资源之前,大家可以先想清楚未来的职业发展方向。毕竟只有找到未来职业发展方向,才更清楚当下重点学习的内容。 根据上图我们基本上一目了然,找到自己未来要发展的方向。在找到之后可以在各个招聘app上了解一下相关岗位的技能要求是什么…

[学习笔记]黑马程序员python教程

文章目录 思维导图Python基础知识图谱面向对象SQL入门和实战Python高阶技巧 第一阶段第九章:Python异常、模块与包1.9.1异常的捕获1.9.1.1 为什么要捕获异常1.9.1.2 捕获常规的异常1.9.1.3 捕获指定的异常1.9.1.4 捕获多个异常1.9.1.5 捕获全部异常1.9.1.6 异常的el…

黑马python6.0培训视频

关于对Python有一些了解的同学,肯定都会说Python语法简洁适合新手,便于阅读等这些方面。实际上是这样的,很多国内计算机专业都是C语言作为第一门学习的语言,很多国外的却是Python入门。因为Python可以让你在短时间内找到成就感&am…

黑马 Python 数据结构与算法第一章

背景知识 1.数组是一种线性表结构,其用一块连续的内存空间,来存储一组具有相同类型的数据; 2.时间复杂度,也叫做渐进时间复杂度,通常用大O公式书写,表示代码的执行时间随数据规模增长的变化趋势&#xff0c…

黑马程序员 python 数据分析 代码_2020年最新版 5.0程序员 黑马python人工智能数据分析机器学习软件测试全栈开发...

阶段一: 5.0课程资料 收起 第一章: 1-Python基础语法v5.0 第二章: 2-面向对象编程v5.0 第三章: 3-linux命令v5.0 第四章: 4-多任务编程v5.0 第五章: 5-web服务器v5.0 第六章: 6-web前端开发基础v5.0 第七章: 7-MySQL数据库v5.0 第八章: 8-mini-web框架v5.0 第九章: 9-django框架…