什么是余3码?\n
余3码(或 XS3)是一种用于表示十进制数的非加权码。它是一种自补二进制编码十进制(BCD)码和数值系统,具有偏差表示。它在算术运算中尤其重要,因为它克服了使用 8421 BCD 码相加两个十进制数字(其和超过 9)时遇到的缺点。余3码算术使用与普通非偏差 BCD 或二进制 位置数制 不同的算法。
余3码的表示
余3码是非加权的,可以通过对每个十进制数字加 3 来获得,然后可以使用每个数字的 4 位二进制数来表示。给定二进制数的余3码等效值是使用以下步骤获得的
- 找到给定二进制数的十进制等效值。
- 将十进制数的每个数字加 +3。
- 将新获得的十进制数转换回二进制数以获得所需的余3码等效值。
您可以将 0011 添加到二进制编码十进制数 (BCD) 中的每个四位组,以获得所需的余3码等效值。
以下是十进制数字的余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 转换为余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) 码
应该注意的是,对于给定的余3码,可以通过将数字分成 4 位一组(从整数部分的最低有效位开始,从分数部分的最左边的数字开始)来确定等效的十进制数。然后从每个四位组中减去 0011(=3),这将是该数字的二进制十进制数字 (BCD) 形式。现在,您还可以通过将每个 4 位组转换为十进制数字来将此 BCD 码转换为十进制数。
示例 - 将余3码 1001001 转换为 BCD 和十进制数。
因此,将每个组分成 4 位,即 0100 1001,并从给定数字中减去 0011 0011。所以,
= 0100 1001 -0011 0011 =0001 0110
因此,二进制编码十进制数为 0001 0110,十进制数为 16。
自补性
余3码是非加权的自补码。自补二进制码总是对其自身进行补码。二进制数的补码可以通过用 1 替换 0 和用 0 替换 1 从该数中获得。二进制数及其补码之和始终等于十进制 9。换句话说,余3码的 1 的补码是对应十进制数的 9 的补码的余3码。
例如,十进制数 5 的余3码是 1000,1000 的 1 的补码是 0111,它是十进制数 4 的余3码,它是数字 5 的 9 的补码。
余3码的优点
以下是余3码的优点:
- 这些是非加权的二进制十进制码。
- 这些是自补码。
- 这些使用偏差表示。
- 代码 0000 和 1111 不用于任何数字,这对内存组织是一个优势,因为这些代码可能会导致传输线路出现故障。
- 它没有限制,并且大大简化了算术运算。
- 它在算术运算中尤其重要,因为它克服了使用 8421 BCD 码相加两个十进制数字(其和超过 9)时遇到的缺点。
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP