常用编码类型之BCD编码

三自由度机械臂DH参数建模与正逆解算法实现 本文详细介绍了三自由度机械臂的DH参数建模与正逆解算法实现。通过建立正确的坐标系、详解DH参数含义、推导齐次变换矩阵,并提供了完整的Python代码实现正运动学计算和逆运动学求解,帮助读者掌握机械臂运动学核心原理与实践技巧。 阅读详情
AI摘要

本文详细介绍了BCD码的概念、分类及其应用。BCD码是一种特殊的编码方式,使用4位二进制数表示一位十进制数,适用于需要精确计算的场景,如会计系统。文章还解释了BCD码的不同类型,包括8421码、2421码和余3码,并提供了实例帮助理解。

BCD:binary-coded decimal(BCD码也称二进码十进数)。

即bcd代码,用4位二进制数来表示1位十进制数中的0~9这10个数码,是一种二进制的数字编码形式,用二进制编码的十进制代码。

说明:BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。这种编码技巧最常用于会计系统的设计里,因为会计制度经常需要对很长的数字串作准确的计算。相对于一般的浮点式记数法,采用BCD码,既可保存数值的精确度,又可免去使计算机作浮点运算时所耗费的时间。此外,对于其他需要高精确度的计算,BCD编码亦很常用。

一、几点说明

类别分为:有权码和无权码 

常用的类型:有权bcd8421码和有权2421码,及无权余3码。

何谓之有权:数学中的“权”代表不等精度观测值在计算未知量的最可靠值时所占的“比重”或“份额”。所以有权BCD码的每一位都有确定的权值,用有权BCD码表示十进制数0~9时,要求BCD码按式(di和wi分别为BCD码第i位上的数字和权值)所求之和等于所表示的十进制数。例如8421码,其4个二进制位由高到低,权值分别为8、4、2、1。

压缩bcd与非压缩bcd:的区别—— 压缩BCD码的每一位用4位二进制表示,一个字节表示两位十进制数。例如10010110B表示十进制数96D;非压缩BCD码用1个字节表示一位十进制数,高四位总是0000,低4位的0000~1001表示0~9.例如00001000B表示十进制数8.

十进制数“36”用非压缩的BCD码表示为“00000011 00000110”而用压缩的BCD码表示为“0011 0110”。其中00000011和0011代表3,00000110和0110代表6,以此类推(一般地,压缩BCD码比较常用,可以节约存储空间。)

 二、常见类别

8421:最基本和最常用的(重点学习),它和四位自然二进制码相似,各位的权值为8、4、2、1,故称为有权BCD码。和四位自然二进制码不同的是,它只选用了四位二进制码中前10组代码,即用0000~1001分别代表它所对应的十进制数,余下的六组代码不用。

5421和2421:它们从高位到低位的权值分别为5、4、2、1和2、4、2、1。这两种有权BCD码中,有的十进制数码存在两种加权方法,例如,5421 BCD码中的数码5,既可以用1000表示,也可以用0101表示;2421 BCD码中的数码6,既可以用1100表示, 也可以用0110表示。这说明5421 BCD码和2421 BCD码的编码方案都不是惟一的,表1-2只列出了一种编码方案。

上表中2421 BCD码的10个数码中,0和9、1和8、2和7、3和6、4和5的代码对应位恰好一个是0时,另一个就是1。就称0和9、1和8互为反码。

余3 码:余3码是8421 BCD码的每个码组加3(0011)形成的。常用于BCD码的运算电路中(所以不在此深入)。

十进制数

8421码

5421码

2421码

余3码

余3循环码

0

0000

0000

0000

0011

0010

1

0001

0001

0001

0100

0110

2

0010

0010

0010

0101

0111

3

0011

0011

0011

0110

0101

4

0100

0100

0100

0111

0100

5

0101

1000

1011

1000

1100

6

0110

1001

1100

1001

1101

7

0111

1010

1101

1010

1111

8

1000

1011

1110

1011

1110

9

1001

1100

1111

1100

1010

三、重点学习之8424码(日常所说的BCD码大都是指8421BCD码形式)

BCD码的运算法则

BCD码的运算规则:BCD码是十进制数,而运算器对数据做加减运算时,都是按二进制运算规则进行处理的。这样,当将 BCD码传送给运算器进行运算时,其结果需要修正。修正的规则是:当两个BCD码相加,如果和等于或小于 1001(即十进制数9),不需要修正;如果相加之和在 1010 到1111(即十六进制数 0AH~0FH)之间,则需加 6 进行修正;如果相加时,本位产生了进位,也需加 6 进行修正。这样做的原因是,机器按二进制相加,所以 4 位二进制数相加时,是按“逢十六进一”的原则进行运算的,而实质上是 2 个十进制数相加,应该按“逢十进一”的原则相加,16 与10相差 6,所以当和超过 9或有进位时,都要加 6 进行修正。下面举例说明。

 举个例子: 
  321的8421码就是 
  3 2 1 
  0011 0010 0001
  原因:0011=8x0+4x0+1x2+1x1=3 0010=8x0+4x0+2x1+1x0=2. 0001=8x0+4x0+2x0+1x1=1
  具体:
  bcd码是十位二进制码, 也就是将十进制的数字转化为二进制, 但是和普通的转化有一点不同, 每一个十进制的数字0-9都对应着一个四位的二进制码,对应关系如下: 十进制0 对应 二进制0000 ;十进制1 对应二进制0001 ....... 9 1001 接下来的10就有两个上述的码来表示 10 表示为00010000 也就是BCD码是遇见1001就产生进位,不象普通的二进制码,到1111才产生进位10000
  举例:
  某二进制无符号数11101010,转换为三位非压缩BCD数,按百位、十位和个位的顺序表示,应为
  A.00000001 00000011 00000111 B. 00000011 00000001 00000111
  C.00000010 00000011 00000100 D. 00000011 00000001 00001001
  解:(1)11101010转换为十进制:234
  (2)按百位、十位和个位的顺序表示,应为 
  附注:压缩BCD码与非压缩BCD码的区别—— 压缩BCD码的每一位用4位二进制表示,一个字节表示两位十进制数。例如10010110B表示十进制数96D;非压缩BCD码用1个字节表示一位十进制数,高四位总是0000,低4位的0000~1001表示0~9.例如00001000B表示十进制数8.

 

BCD是指用二进制来表示十进制数的编码,即:用4位二进制来表示一位十进制数,因此4位二进制数表示最大的十进制数9(1001)。

一个四位的BCD码不能够表达十进制的两位数,因此当数字大于九时,我们需要用八位BCD码来表示。高位只需要逢九进一即可。

十进制是逢十进一,而十六进制是逢十六进一,它们之间的每次进位差6,所以一个十进制数要转换成BCD码,要先算清多进位的位数。

当两个BCD码相加,如果和等于或小于 1001(即十进制数9),不需要修正。

如果相加之和在 1010 到1111(即十六进制数 0AH~0FH)之间,则需加 6 进行修正

 十进制99进位了99/10=9次,每次进位和十六进制进位相比差6,所以一共差了9×6=54,即BCD码为:99+54=153(十六进制:0X99)。BCD码转化成十进制码也一样原理。、


 

用FPGA设计8421BCD编码 运用介绍:8421BCD码中的“8421”表示从高到低各位二进制位对应的权值分别为8、4、2、1,将各二进制位与权值相乘,并将乘积相加就得相应的十进制数。例如,8421BCD码“0111”,0×8+1×4+1×2+1×1=7D,其中D表示十进制。bcd_8421模块代码(该代码参考了野火的8421bcd编码) 阅读详情

相关推荐

BCD码优先编码设计

作业名称: BCD码优先编码设计 一、作业目的 1.了解了74148优先编码器的工作原理和优先级的设计。 2.掌握集成优先编码功能和应用。 3.熟悉和运用Multisim对常用电路的仿真和设计。 二、作业内容 大家都知道在计算机里面都是使用二进制,其实,8086/8088 CPU 也可以使用十进制进行计算的。在计算机中的十进制数称为 BCD 码,它是使用四位二进制数,表示一位十进制数字。 常见的 BCD 码是 8421 码。即:0000 ~ 1001 分别代表 0 ~ 9。一个字节有 8

m0_45294651的博客 3567

BCD码的类别

BCD ( Binary - Coded Decimal )码,也叫二-十进制码,主要就是用4位二进制数来表示1位的从0~9的十进制数。 BCD 码主要分为有权码(8421码,5421码,2421码)和无权码(余3码,余3循环码) 8421码 数值权值为8、4、2、1;0~9就是按照二进制来的。超出9以后把10进制情况下的数按照个十百千万的位数拆开,并把每一位按照二进制合起来。 例如:19 十位:1=0001 个位:9=1001合起来后为:00011001=(0*8+0*4+0*

m0_73648245的博客 3万+

BCD编码(8421)介绍

BCD编码介绍以及解码

运气不好努力来凑 2494

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

BCD 是一位十进制数,由代表 0 到 9 的四位二进制数字表示。 当寄存器值以十六进制表示时,可以原样读取为十进制数,这对于处理十进制数的函数来说非常方便。 二进制数的 4 位可以表示为 0 到 15,但只有低 10 位被视为有效数字。 例如,假设运算的结果是十进制数“37”。 由于它是作为二进制数存储在实际寄存器中的,“0010 0101”就是寄存器值。 另一方面,在使用集成开发工具或液晶显示器显示人类可以确认的数​​字时,十六进制数比二进制数更容易看清,因此以十六进制“25”显示。 但是,这样做很

编程老王 3万+

BCD码的介绍与十进制数间代码转换

BCD码(Binary-Coded Decimal‎)称为二进码,用4位二进制数来表示1位十进制数中的0~9这10个数码。是十进代码中最常用的一种。在这种编码方式中,每一位二值代码的“1”都代表一个固定数值。将每位“1”所代表的 二进制数加起来就可以得到它所代表的十进制数字。因为代码中从左至右看每一位“1”分别代表数字“8”“4”“2”“1”,故得名8421码。其中每一位 “1”代表的十进制数称为这一位的权。因为每位的权都是固定不变的,所以8421码是恒权码。

T19900的博客 2万+

10、数据表示:BCD与ASCII字符编码解析

本文深入解析了BCD和ASCII两种数据表示方法,详细介绍了BCD的构成及其优缺点,ASCII字符集的结构与应用场景,并探讨了HLA对ASCII字符的支持及实际使用方法。同时,文章提供了在不同场景下如何选择数据表示方式的建议,适用于嵌入式系统开发和汇编语言编程中的字符处理。

kite3的博客 302

BCD编码

它将十进制数的每一位数字分别用固定位数的二进制数来表示,最常见的 BCD 编码使用 4 位二进制数来表示 1 位十进制数字(0-9)。理解 BCD 编码的原理和应用,对于从事嵌入式开发、数字电路设计、金融系统开发等领域的工程师来说,是一项必备的基础技能。注意:4 位二进制数共有 16 种组合(0000-1111),但 BCD 编码只使用前 10 种(0000-1001),剩余的 6 种组合(1010-1111)在标准 BCD 编码中是无效的。2421 BCD 码的各位权值分别为 2、4、2、1。

2503_94015091的博客 266

GPU算力租用平台推荐

阿里云作为中国领先的云计算服务提供商,提供了丰富的GPU云服务器实例,包括NVIDIA Tesla V100、A100等多种高性能GPU型号。阿里云GPU云服务器适用于深度学习、科学计算、图形渲染等多种场景,能够满足不同用户的计算需求。

hong161688的博客 8175

php bcd码,什么是码制?几种常见的bcd代码

分析日常生活中接触到的数字,无非有两种类型的数字:一种数字描述的是量的大小或多少,如路长40km、体重40kg等;另一类数字不表示量的大小或多少,而是代表某个事物的代码,如运动员的编号、学生的学号等。为了便于记忆和处理,在编制代码时总要遵循一定的规则,这些规则就叫做码制。在数字系统中对各类信息进行处理时,总是先将这些信息用一定位数的二进制代码表示,然后再对这些二进制代码进行处理。因此,为了便于机器...

weixin_30852391的博客 1072

如何用ISBN API快速获取图书信息?Python实战教程(附完整代码)

本文是一篇Python实战教程,详细介绍了如何利用ISBN API高效获取图书元数据。内容涵盖从API服务选择、密钥管理,到使用requests库构建健壮的请求模块,并利用Pydantic进行数据验证与解析。教程还提供了批量查询、缓存优化及集成到Flask Web应用等高级技巧,帮助开发者快速实现图书信息的自动化获取与处理。

p8q9r0的博客 456

手把手教你用开源EtherCAT协议栈SOEM开发从站设备(附避坑指南)

本文详细介绍了如何使用开源EtherCAT从站协议栈SOES进行嵌入式设备开发。内容涵盖从环境搭建、硬件准备到核心的对象字典与PDO映射配置,并重点分享了主循环集成、状态机处理以及实战调试中的常见问题与避坑指南,旨在帮助开发者高效实现设备接入工业现场总线网络。

linux的博客 630

数字逻辑电路各种编码

众所周知,在我们日常生活中常用的是十进制,也就是0~9,进行各种活动也是按这种进行,几乎是一种常识,但是在科学当中还存在着各种编码,比如计算机所使用的二进制,目前我们的信息都是以这种编码组成,简单高效。 那么有哪些编码呢,我主要在这里写下课程涉及的编码,   一:BCD码(Binary Coded Decimal codes) 有权BCD码:每位数码都有确定的位权的码 1,8421码,和...

qq_16056621的专栏 4097

深入解析数据通信中的码元速率与比特率:从基础到实战应用

本文深入解析了数据通信中的核心概念码元速率与比特率,通过生动的比喻和公式(比特率=波特率×log₂(M))揭示其本质关系。文章结合BPSK、QPSK、16QAM等调制技术,剖析了从4G/5G到LoRa等实战场景中如何权衡速率、距离与可靠性,并提供了软考真题解析与系统设计建议,帮助读者从理论到应用全面掌握数据速率优化。

weixin_29324877的博客 214

[android]通讯中常用到的Helper

之前在JT/T 794在android上实现时用到了不少类型转换的Helper,现将其公布出来,有需要的朋友拿去用吧。 1.常用类型和byte[]互转的ByteHelper; 2.BCD码压缩的BCDHelper; 3.CRC、XOR的CheckHelper 。   package com.van.base; import java.io.UnsupportedEncodingExce

208studio的专栏 628

各种AI的调试日记——辅助工作篇

记录使用各种AI(语言大模型)的心得和总结

m0_73056986的博客 1392

【机器学习】实验3,贝叶斯垃圾邮件识别(完整代码实现+报告)

电子邮件是互联网的一项重要服务,在大家的学习、工作和生活中会广泛使用。但是大家的邮箱常常被各种各样的垃圾邮件填充了。有统计显示,每天互联网上产生的垃圾邮件有几百亿近千亿的量级。因此,对电子邮件服务提供商来说,垃圾邮件过滤是一项重要功能。而朴素贝叶斯算法在垃圾邮件识别任务上一直表现非常好,至今仍然有很多系统在使用朴素贝叶斯算法作为基本的垃圾邮件识别算法。本次实验数据集来自的中文垃圾邮件数据集,目录解压后包含三个文件夹,其中data目录下是所有的邮件(未分词),已分词好的邮件在data_cut目录下。

高丽大学人工智能硕士在读|专注大模型、RAG、OCR与AI工程实践 5030

BCD码*

BCD码 二进制编码的十进制数(BCD)通常采用4位二进制数来表示一位十进制数中的0~9这十个数码 8421码 (最常用)有权码,权值从高到低依次为8,4,2,1 修正、进位: (1)两个8421码相加之和小于等于1001B(即9D),不需要修正。 (2)相加之和大于等于0110B(即10D),需要加6修正,并向高位进位(0110B~~1111B)从10~15这6个为无效码,运算结果在这个区间需要加6,修正) 余3码 无权码,在8421码的基础上加0011B(即加3D)形成。 2421码 有权码,权值由高到

Emily_ASL的博客 757

BP神经网络回归预测+SHAP可解释分析+新数据预测(MATLAB完整源码)

BP神经网络回归预测+SHAP可解释分析+新数据预测(MATLAB完整源码)

机器学习之心的博客,关注并私信文章链接,获取对应文章源码和数据。 392

C# 中上下位机通讯常用进制转换、编码转换、校验和方法汇总

本文汇总了C#中常用的数据转换方法,主要包括进制转换(十进制与二进制/十六进制互转)、编码转换(UTF-8/GB2312/ASCII互转)、数值处理(字节数组与数值类型互转)、校验方法(CRC16/累加和)以及特殊格式处理(BCD码/位操作)。重点介绍了Modbus RTU通信协议的帧构建与解析实现,包含大端序处理和CRC校验等关键细节。这些方法为工业通信、数据解析等场景提供了实用参考方案。

大佬的博客 381

大学生数学建模赛题解析及优秀论文-2021电工杯A题高铁牵引供电系统运行数据分析及等值建模(附Python代码)

我国是世界上电气化铁路运营里程最长、服役电力机车型号最多、运营最 繁忙的国家。截至 2020年底,我国铁路年消耗电量约800亿千瓦时,约占三峡 年总发电量的 80%。图1为高速铁路牵引供电系统示意图,主要包括牵引变电所、牵引网和动车 组。牵引变电所将 220kV三相电压转换为满足电力机车运行的27.5kV单相电压, 其核心元件是牵引变压器。牵引网由馈线、接触网、钢轨、回流线等组成,完成 对电力机车的送电任务。...

wenyusuran的专栏 3169

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

什么是BCD码?BCD码编码规则

BCD码

xkdlzy的专栏 12万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

BCD码详解

BCD码的种类 BCD码可分为有权码和无权码两类:有权BCD码有8421码、2421码、5421码,其中8421码是最常用的;无权BCD码有余3码、格雷码等。 8421 BCD码 8421 BCD码是最基本和最常用的BCD码,它和四位自然二进制码相似,各位的权值为8、4、2、1,故称为有权BCD码。和四位自然二进制码不同的是,它只选用了四位二进制码中前10组代码,即用0000~1001分别代表它所对应的十进制数,余下的六组代码不用。 5421 BCD码和2421 BCD码 5421 BCD码和24

959 6万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

一次说清楚BCD编码

第一次接触的时候,真心很懵,但当我看到只有10个码的时候,觉得不过如此。。。人啊,就是这样,对新东西畏惧,对熟悉的东西缺失尊重!

东皋长歌的专栏 4360

常用编码知识(BCD / 字符编码)

BCD 码(Binary Coded Decimal)专为解决 “十进制数字二进制编码” 而生,用 4 位二进制数表示 1 位十进制数(0~9),避免二进制与十进制转换的精度损失,是工业仪表、数据采集场景的常用编码。4 位二进制数对应权值 2、4、2、1,0~4 用 0000~0100,5~9 用 1011~1111。原始数据 1 的个数:4(偶数)→ P=1 → 完整编码1011011(7 位)原始数据 1 的个数:4(偶数)→ P=0 → 完整编码1011010(7 位)

flyflyfly12345的博客 1641

BCD编码及转码

简单介绍 摘取一段百度百科介绍: BCD码(Binary-Coded Decimal‎),用4位二进制数来表示1位十进制数中的0~9这10个数码,是一种二进制的数字编码形式,用二进制编码的十进制代码。 常见的BCD码又分8421码、5421码、2421码、余3码、余3循环码。 个人理解BCD码:将十进制数压缩存储。 拿8421(四位,每位为1代表十进制数。1110等于8+4+2+0 = 14)BC...

老张的便利贴 6174

编码 & 8421BCD 码的故事

计算机编码中,我们都是先了解了二进制,其中分有符号数,无符号数,然后会接触到BCD码,那么BCD码是怎么产生的?为什么又要用四位二进制来表示呢? 一、BCD码 1.由来 计算机使用二进制数来处理信息,但是如果二进制的形式输入和输出数据,就十分不方便了。一般来说,输入输出时采用十进制数。 举例: 明明二进制 0110 (B)代表数字 6,但是人们更习惯,也更喜欢的数 阿拉伯数字 6 ,也可以是 中文 六。 那么,这里就存在一个问题,我们使用计算器,是输入的为十进制数 25,但是计算机使用二进制数来处理信息,那

Sticker的博客 7768
上一篇: 常见编码类型
下一篇: foreach用法
Solstice_898
博客等级 码龄5年 5粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值