- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我这里有一个主题,来自“数字系统”,主题为“计算机组织与体系结构简介”
然后我遇到了这个主题,“自我补充代码”
它分为三个部分,如下所示:
i)多余3(我理解这一部分,因为它要求我们在BCD中加3)
ii)84-2-1(我不明白)
iii)2 * 421(我不明白)
我希望有人能解释第二和第三部分的工作原理。
非常感谢。
最佳答案
我认为莫里斯·马诺(Morris Mano)的“数字设计”这部分书将回答您的问题:
BCD和2421码是加权码的示例。在加权代码中,每一位
为位置分配一个权重因子,以便可以通过以下方式评估每个数字:
将编码组合中所有1的权重相加。
十进制数字的四种不同的二进制代码
______________________________________________________________
十进制BCD 2421多余3、8、4,-2,-1
数字8421
______________________________________________________________
0 0000 0000 0011 0000
1 0001 0001 0100 0111
2 0010 0010 0101 0110
3 0011 0011 0110 0101
4 0100 0100 0111 0100
5 0101 1011 1000 1011
6 0110 1100 1001 1010
7 0111 1101 1010 1001
8 1000 1110 1011 1000
9 1001 1111 1100 1111
______________________________________________________________
1010 0101 0000 0001
未使用1011 0110 0001 0010
位1100 0111 0010 0011
组合-1101 1000 1101 1100
各国1110 1001 1110 1101
1111 1010 1111 1110
2421,excess-3和84-2-1码是自补码的示例。这样的
代码具有以下特性:获得十进制数字的9的补码
直接将1更改为0,将0更改为1(即通过对模式中的每个位进行补码)即可。例如,十进制395在超额3码中表示为0110 1100 1000。
9的补数604表示为1001 0011 0111,可以简单地获得
通过对代码的每一位进行补码(与二进制数的1补码一样)。
数字设计-第五版-莫里斯·马诺(Morris Mano)
关于bcd - self 补码(Excess 3,84-2-1,2 * 421),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25748301/
今天我在正则表达式中偶然发现了一个奇怪的行为——匹配。我无法解释,尽管我认为我对正则表达式很有经验 print re.sub('a*|b', '', 'bcd') bcd 没有 glob 的地方 p
我有一个由 CashRegister Machine 创建的 Hex 文件。我必须读入这个文件。 文件使用下面详述的格式。它就像套接字数据包。 代码数据:2字节 PLU码数据:7字节 单价数据:5字节
我问了这个问题,Matching if all of BCD..n exist after last occurrence of A就在昨天,我们得到了快速而准确的答案(请参阅regex demo)。
我正在向左或向右移动 BCD 数字的位以快速乘以或除以 2。这是一个左移的快速示例: void LShift(unsigned char *arg) { int i, carry=0, temp
使用“Arduino 语言”(C++ 包装器)的 Arduino 项目 - 我有一个 8 字符数组,它以 {'H','H',':','M','M',':','S,'S 的形式提供 24 小时时钟'}
我有一个包含以下值的无符号字符数组:“\x00\x91\x12\x34\x56\x78\x90”;那是以十六进制格式发送的数字。此外,它是 BCD 格式:字节为 00,另一个字节为 91(8 位) 另
如何在不使用 sprintf 的情况下在 C 中实现这些转换? 20 => 0x20 12 => 0x12 目前我有: int year = 12; int month = 10; int day =
A、B、C 和 D 代表正则表达式的不同部分。 我要达到的效果:输入字符串为 ACD 或 BCD。用E替换C后,输出应该是AED或BED。 我使用的正则表达式: r=(A)C(D)|(B)C(D) 但
二进制字段的描述是: Caller number, expressed with compressed BCD code, and the surplus bits are filled with “
有人可以向我解释如何将BCD转换为十六进制吗?例如,如何将98(BCD)转换为十六进制。 谢谢。 最佳答案 我不太了解您的问题,但我猜是有人给您一个以BCD编码的数字98,该数字是: 1001 100
这是我努力尝试但无法解决的问题。 我从试卷上抓到了问题,我在考试中无法解决它,而其他学生也无法解决。 你可能会问,你为什么不问问你的讲师(这是一个公平的问题,因为你不是来解决考试问题或家庭作业的),我
我正在寻找现有的 Delphi Data.FmtBcd 库的替代品,因为我刚刚达到了它的限制,例如它可以表示的最大十进制数字,并且程序因 EBcdOverflowException 终止。出于好奇,我
如果您不了解二进制,我知道 BCD 是更直观的数据类型。但我不知道为什么要使用这种编码,它好像没有多大意义,因为它浪费以 4 位表示(当表示大于 9 时)。 另外,我认为 x86 仅支持直接添加和替换
我应该如何将包含十六进制值的 uint8 数组转换为打包的 bcd 值?简单地调动 4 个位置就能完成工作吗?如果可能的话,我希望提供一些代码示例以更好地理解我的问题 最佳答案 以下代码是如何转换的示
我是一名学习 C++ 的初学者(自学)程序员,最近我决定实现一个二进制编码的十进制 (BCD) 类作为练习,这样我就可以在 Project Euler 上处理非常大的数字。 .我想尽可能从根本上做到这
我正在寻找更好的方法来优化此功能以获得更好的性能,加快其针对嵌入式设备的目标。我欢迎任何指点,建议谢谢 函数将字符串BCD转为十进制 int ConvertBCDToDecimal(const std
我现在解决这个问题太蠢了...... 我得到一个BCD码(每个数字都是自己的4Bit表示) 比如我想要的: 输入:202(十六进制)== 514(十进制) 输出:BCD 0x415 输入:0x202
在我的项目中使用的值是用4位二进制编码的十进制数(BCD)表示的,它最初存储在一个字符缓冲区中(例如,由指针指向 const unsigned char *) .我想将输入的 BCD 字符流转换为整数
我正在寻找一种将字符串转换为等效 BCD 码的方法。我使用Java,但这确实不是语言的问题。我试图逐步了解如何将字符串转换为 BCD。 例如,假设我有以下字符串; "0200" (This strin
我知道您可以使用此表将十进制转换为 BCD: 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 此转换是否有方
我是一名优秀的程序员,十分优秀!