首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于3位格雷码生成真值表

基于3位格雷码生成真值表
EN

Stack Overflow用户
提问于 2016-12-11 11:54:00
回答 1查看 2.8K关注 0票数 2

我正在努力理解灰色代码以及它如何影响输出。基本上,我试图做的最终目标是设计一个基于真值表的电路。除了格雷代码部分,我了解大部分内容。

假设我得到了这个真值表,其中输出在每个时钟上升沿根据3位格雷码发生变化(最后一个值循环回到第一个值)。如何填写输出?我是不是应该取左边的值,用格雷码计算出它的下一个值,然后把它填进去?

代码语言:javascript
复制
Inputs   |  Outputs
-------------------
S2 S1 S0 | N2 N1 N0
--------------------
0  0  0  | ?  ?  ?
0  0  1  |
0  1  0  |
0  1  1  |
1  0  0  |
1  0  1  |
1  1  0  |
1  1  1  |

我的第一反应是,我看到左边的列不是灰色代码。我可以根据基本的格雷码序列来填写吗?格雷码3位序列是000,001,011,010,110,111,101,100。我可以只填写图表的右边,比如001,011,110,010等吗?

EN

回答 1

Stack Overflow用户

发布于 2016-12-11 12:24:38

我已经解决了。对于将来偶然发现这个主题的人来说,这里是如何将二进制代码转换为格雷码的。

首先,降低最重要的位。这是格雷码的第一个比特。如果二进制值为100,则第一位将为1,因此格雷码为1--。

要找到格雷码的第二位,请将二进制的第一位与第二位相加。在100中,这将是1+0 = 1。这是格雷码的第二位,11-。

接下来,将二进制数的第二位与第三位相加。这是最后一段格雷代码。100,所以0+0 = 0,我们的格雷码就变成了110。

对于四位转换,只需继续该模式,但将二进制位3和4相加,即可获得格雷码数的位4。

我的答案的完成表是

代码语言:javascript
复制
Inputs   |  Outputs
-------------------
S2 S1 S0 | N2 N1 N0
--------------------
0  0  0  | 0  0  0
0  0  1  | 0  0  1
0  1  0  | 0  1  1
0  1  1  | 0  1  0
1  0  0  | 1  1  0
1  0  1  | 1  1  1
1  1  0  | 1  0  1
1  1  1  | 1  0  0
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41082831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档