当前位置: 首页 > 编程笔记 >

什么是Excess-3代码?

蒋硕
2023-03-14
本文向大家介绍什么是Excess-3代码?,包括了什么是Excess-3代码?的使用技巧和注意事项,需要的朋友参考一下

超额3码(或XS3)是一种非加权代码,用于表示用于表示十进制数字的代码。它是一种具有偏差表示的自互补二进制编码的十进制(BCD)代码和数字系统。对于算术运算而言,它特别重要,因为它克服了使用8421 BCD代码添加两个总和超过9的十进制数字时遇到的缺点。Excess-3算术使用的算法与普通无偏BCD或二进制位置数字系统不同。

多余3码的表示形式

多余的3位代码未加权,可以通过在每个十进制数字上加3来获得,然后可以通过为每个数字使用4位二进制数来表示。使用以下步骤可获得给定二进制二进制数的Excess-3等效项:

  • 查找给定二进制数的十进制等效项。

  • 在十进制数字的每个数字上加上+3。

  • 将新获得的十进制数转换回二进制数,以获取所需的多余3等效项。

您可以将0011添加到二进制编码的十进制数字(BCD)的每个四位组中,以获取所需的多余3等效项。

这些是以下多余的三位十进制数字代码-

小数位数
BCD代码
多余的3码
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

代码0000和1111不用于任何数字。

示例1-将十进制数字23转换为Excess-3代码。

因此,根据多余的3码,我们需要在十进制数的两位数前加3,然后将其转换为4位二进制数,以得到每个数位的结果。因此,

= 23 + 33 = 56 = 0101 0110,对于给定的十进制数字23,这是多余的3码。

示例2-将十进制数15.46转换为多余3代码。

根据多余的3码,我们需要在十进制数的两位数前加3,然后转换为4位二进制数以得到每一位的结果。因此,

= 15.46 + 33.33 = 48.79 = 0100 1000.0111 1001对于给定的十进制数15.46,这是多余的3码。

转换为二进制编码的十进制(BCD)代码 

应该注意的是,对于给定的Excess-3代码,可以通过将数字分为4位组来确定等效的十进制数,从整数部分的最低有效位开始,到小数部分的最左位开始。然后从每个四位组中减去0011(= 3),该组将是该数字的二进制十进制数字(BCD)形式。现在,您还可以通过将每个4位组转换为十进制数字来将此BCD代码转换为十进制数字。

示例将Excess-3代码1001001转换为BCD和十进制数。

因此,将每个组的4位分组,即0100 1001,然后从给定的数字中减去0011 0011。因此,

= 0100 1001 -0011 0011 = 0001 0110

因此,二进制编码的十进制数字是0001 0110,十进制数字将是16。

自我补充的财产

超额3码是非加权和自补码。自补二进制代码始终是对自己的补充。通过将0替换为1,将1替换为0,可以从该数字获得二进制数的补码。二进制数及其补码的总和始终等于十进制9。换句话说,多余3码的1的补码就是对应十进制数9的补码的多余3码。

例如,十进制数字5的多余3代码为1000,而1000的1的补码为0111,十进制数字4的多余3代码为9的数字5的补码。

Excess-3代码的优点

这些是Excess-3代码的以下优点,

  • 这些是未加权的二进制十进制代码。

  • 这些是自补码。

  • 这些使用偏见表示。

  • 代码0000和1111未用于任何数字,这对于存储组织是有利的,因为这些代码可能会导致传输线故障。

  • 它没有限制,并且大大简化了算术运算。

  • 这对于算术运算特别重要,因为它克服了使用8421 BCD代码添加两个总和超过9的十进制数字时遇到的缺点。

 类似资料:
  • 问题内容: 在Python 3中取消了通过删除以下命令快速加载脚本的所有简便方法 我是否有明显的替代品? 问题答案: 采用

  • 问题内容: 我正在使用本教程中描述的身份验证/授权机制来构建Rest服务:http : //howtodoinjava.com/2013/06/26/jax-rs-resteasy-basic-authentication-and- authorization-tutorial/ 基本上,它使用PreProcessInterceptor接口扫描目标方法中的注释(来自javax.annotation

  • 问题内容: 我碰到了/usr/include/linux/kernel.h中的这个奇怪的宏代码: 怎么办? 问题答案: 实际上,这是 一种检查表达式e是否可以评估为0的方法,如果不能,则使build失败 。 该宏的名称有些错误;它应该更像是,而不是。( 偶尔会讨论这个名称是否令人困惑 。) 您应该这样阅读表达式: :计算表达式。 :逻辑上取反两次:if ; 否则。 :数控否定表达来自步骤2:如果它

  • 问题内容: 作者:霖呆呆 Array(3)和Array(3, 4)的区别? 考察知识点: 和 参数个数不同时的不同表现 的作用 问题答案: Array和new Array的执行结果一样 Array(3) => [empty x3] 一个参数的时候创建一个长度为3的空数组 Array(3, 4) => [3, 4] 大于一个参数的时候则把参数作为元素创建一个长度可变数组 Array.of(3) =>

  • 问题内容: 该类的用途是什么?是重要的还是我可以删除它?工作正常,没有。 这是我的示例: 问题答案: 根据bootstrap的文档,该类用于从呈现的页面的布局中隐藏仅用于 屏幕阅读器的 信息。 如果您没有为每个输入都添加标签,那么屏幕阅读器将在您的表单上遇到麻烦。对于这些内联表单,您可以使用.sr-only类隐藏标签。 这是使用的示例]样式: 是重要的还是我可以删除它?工作正常,没有。 重要的是,

  • 本文向大家介绍迭代器 Iterator 是什么?相关面试题,主要包含被问及迭代器 Iterator 是什么?时的应答技巧和注意事项,需要的朋友参考一下 terator 接口提供遍历任何 Collection 的接口。我们可以从一个 Collection 中使用迭代器方法来获取迭代器实例。迭代器取代了 Java 集合框架中的 Enumeration,迭代器允许调用者在迭代过程中移除元素。