余三码和8421码的关系以及使用场景

简介: 余三码与8421码是两种不同的二进制编码方式,常用于表示十进制数。余三码是8421码加上3形成的无权码,具有自补性和进位信号特点,适合错误检测,但求和需修正。8421码是恒权码,方便二进制与十进制转换,常用于数字显示、数据传输和精确十进制运算。在计算机领域,两者各有应用场景,如BCD码用于七段显示器和精确计算,余三码则用于错误检测和简化算术操作逻辑设计。


简单介绍以及二者的关系和区别


余三码和8421码是两种不同的二进制编码方式,用于表示十进制数。以下是它们之间的区别以及详细的介绍和例子:

余三码(余3码)

定义

余三码是由8421BCD码加上0011形成的一种无权码。由于它的每个字符编码比相应的8421码多3,故称为余三码。

特点

  1. 自补性:余三码具有9的自补代码特性,即十进制0和9、1和8、2和7、3和6、4和5对应的余三码互为反码。
  2. 进位信号:当两个十进制数的和是9时,相应的余三码的和正好是15,于是可自动产生进位信号,而不需修正。
  3. 修正方法:在将两个余三码表示的十进制数相加时,能正确产生进位信号,但对“和”必须修正。修正的方法是:如果有进位,则结果加3;如果无进位,则结果减3。

例子

以十进制数1318为例,其8421BCD码为0001 0011 0001 1000,转换为余三码后为0100 0110 0100 1011

8421码

定义

8421码是最常用的BCD码,也是十进制代码中最常用的一种。在这种编码方式中,每一位二值代码的“1”都代表一个固定数值。将每位“1”所代表的二进制数加起来就可以得到它所代表的十进制数字。

特点

  1. 恒权性:8421码是恒权码,因为代码中从左至右看每一位“1”分别代表数字“8”“4”“2”“1”,其权是固定不变的。
  2. 精确性:采用8421码既可保存数值的精确度,又可免却使电脑作浮点运算时所耗费的时间。
  3. 简便性:使二进制和十进制的转换变得方便。

例子

以十进制数1318为例,其8421BCD码直接为0001 0011 0001 1000


下表显示了0到9的十进制数对应的8421码和余三码:

Decimal 8421 Code Excess-3 Code
0 0000 0011
1 0001 0100
2 0010 0101
3 0011 0110
4 0100 0111
5 0101 1000
6 0110 1001
7 0111 1010
8 1000 1011
9 1001 1100

如您所见,8421码是直接的二进制表示,而余三码则是对每个十进制数字加上3的结果。这在某些计算和逻辑电路设计中可以提供错误检测等额外的好处。


总结

余三码和8421码的主要区别在于它们的编码方式和特性。余三码是一种特殊的无权码,具有自补性和自动进位信号的特点,但求和时需要修正;而8421码是恒权码,权值固定,使二进制和十进制的转换变得方便,且能保存数值的精确度。在应用中,根据具体需求选择合适的编码方式。




在计算机领域的使用



在计算机科学和电子工程领域,8421码(BCD码)和余三码(Excess-3码)有其特定的应用场景。下面我会具体说明这两种编码的常见用途:

8421码 (BCD码)

  1. 数字显示: 在需要显示十进制数字的设备中,如计算器、时钟、计数器和各种仪表盘,BCD码非常有用。这是因为BCD码可以直接驱动七段显示器,而无需进行复杂的二进制到十进制的转换。
  2. 数据传输: 在数据传输过程中,BCD码有时用于确保数据的准确性和简化校验过程。例如,在某些通信协议中,使用BCD码可以避免二进制到十进制转换中的错误。
  3. 算术运算: 虽然现代计算机内部通常使用二进制进行算术运算,但在一些嵌入式系统或特定应用中,BCD码被用来执行精确的十进制运算,这在金融和会计软件中尤为重要,以避免二进制浮点运算中的舍入误差。

余三码 (Excess-3码)

  1. 错误检测: 余三码的一个主要优点在于它可以用于简单的错误检测。由于每个BCD码都被加上了3,因此如果发生了单比特错误,接收到的编码将不会对应任何有效的余三码,从而可以被检测出来。
  2. 算术操作: 在一些情况下,余三码可以简化加法和减法的逻辑设计。例如,通过使用余三码,可以通过简单的逻辑门实现循环进位或借位,这在设计特定类型的算术逻辑单元(ALU)时很有帮助。
  3. 编码转换: 在需要从BCD码转换到其他形式的编码,或反之亦然的情况下,余三码提供了一种中间步骤,可以简化编码之间的转换过程。

总的来说,尽管在大多数高性能计算任务中,纯二进制编码因其效率而占主导地位,但在需要处理十进制数据的精确性或在低功耗、低成本的嵌入式系统中,BCD码和余三码仍然有其不可替代的作用。




相关文章
|
12月前
|
机器学习/深度学习 人工智能 算法
停车场导航系统核心技术功能解析,助力造城市便捷项目改造
本文通过停车场反向寻车导航系统的核心技术:蓝牙定位和ai导航,以及车位引导、反向寻车、预约车位等功能,说明了停车场智慧升级带来的优势,如需获取智慧停车场反向寻车方案可前往文章末尾获取
652 3
|
搜索推荐 数据挖掘 定位技术
商场定位导航系统:为用户提供的智能化与个性化服务
在现代社会,商场不仅是购物之地,也是休闲社交之所。但庞大的规模常导致顾客迷路,影响体验。商场定位导航系统通过精准室内定位技术,帮助顾客轻松找到目的地,显著提升便捷性与满意度。系统还具备实时位置共享及智能路径规划功能,加强互动营销;同时,数据分析工具助力商场优化管理,提高效率。核心功能包括:高精度电子地图、智能路径规划、实时定位导航、位置共享及基础设施快速查找。这些特性不仅能增加顾客满意度与忠诚度,还能提高商场运营的数据化水平,扩大品牌影响力,是商场智慧化转型的关键。
824 2
商场定位导航系统:为用户提供的智能化与个性化服务
|
人工智能 自然语言处理 小程序
政务VR导航:跨界融合AI人工智能与大数据分析,打造全方位智能政务服务
政务大厅引入智能导航系统,解决寻路难、指引不足及咨询台压力大的问题。VR导视与AI助手提供在线预览、VR路线指引、智能客服和小程序服务,提高办事效率,减轻咨询台工作,优化群众体验,塑造智慧政务形象。通过线上线下结合,实现政务服务的高效便民。
506 2
政务VR导航:跨界融合AI人工智能与大数据分析,打造全方位智能政务服务
|
移动开发 小程序 物联网
智能车位引导系统:智能导航,便捷停车
摘要(Markdown格式): 智慧停车场结合室内定位导航技术,提升停车效率及用户体验。设计包括移动端H5导航小程序、大屏端智能联动,以及基于GIS的物联网管理。系统提供空余车位引导、车位预约、多样化寻车及AR导航等功能,支持与不同停车场系统对接,确保可扩展性。通过优化的离场引导,减少车主寻找出口的时间,整体提升了大型公共场所的客流管理和信息化水平。
1176 3
智能车位引导系统:智能导航,便捷停车
|
消息中间件 分布式计算 网络协议
从管道路由到共享内存:进程间通信的演变(内附通信方式经典面试题及详解)
进程间通信(Inter-Process Communication, IPC)是计算机科学中的一个重要概念,指的是运行在同一系统或不同系统上的多个进程之间互相发送和接收信息的能力。IPC机制允许进程间共享数据、协调执行流程,是实现分布式系统、多任务操作系统和并发编程的基础。
394 1
从管道路由到共享内存:进程间通信的演变(内附通信方式经典面试题及详解)
|
API Python
Python学习日记(二:函数和逻辑操作)
Python中的函数和逻辑操作至关重要。函数包括可变和不可变参数。
212 2
|
存储 安全 编译器
Python学习日记(一:List、Tuple、dictionary)
1.列表、元组和字典都是序列 2.列表字典可以修改和删除序列中的某个元素,而元组就是一个整体,不能修改和删除,一定要修改或删除的话,只能修改和删除整个元组。 3.既然元组不能删除和修改,有什么作用呢? 1.元组比列表遍历速度快,因为元组是一个整体,运算效率高; 2.正是因为不能修改,元组可以保护不需要修改的数据,可以使代码结构更安全。
251 2
|
JSON 自然语言处理 网络协议
基于QT实现的词典(附源码)
主要用到的技术:JSON字符串,堆栈窗体(方便以后加新功能),QTcpSocket,LcdNumber,时间戳的转换。 通信用的是TCP通信,将TCP封在了一个头文件中,哪个文件想去通过TCP链接发送消息就可以使用头文件 QT端写的是客户端,服务器还是在我笔记上次的Linux系统下写的服务器,做了一些小修改
399 1
|
算法 前端开发 C++
C++基础知识(八:STL标准库 deque )
deque在C++的STL(Standard Template Library)中是一个非常强大的容器,它的全称是“Double-Ended Queue”,即双端队列。deque结合了数组和链表的优点,提供了在两端进行高效插入和删除操作的能力,同时保持了随机访问的特性。
625 1
|
存储 C++ 索引
C++基础知识(八:STL标准库 Map和multimap )
C++ 标准模板库(STL)中的 map 容器是一种非常有用的关联容器,用于存储键值对(key-value pairs)。在 map 中,每个元素都由一个键和一个值组成,其中键是唯一的,而值则可以重复。
403 1