问题标签 [gray-code]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
12807 浏览

assembly - Assembly 8086: Converting 8-bit binary number to its Gray number equivalent?

Problem:

Write a program to convert an 8-bit binary number entered from the keyboard to the equivalent Gray code binary number, using the following the algorithm:

[broken image: http://www.harborlandings.com/images/grayAlgm.jpg]

I'm learning assembly (8086, required by class) and not sure how to do this.

Do I convert each character (1 or 0) as I receive it from the keyboard? Or, do I read in the entire 8-bit binary number, loop through it, converting as I go?

I come from Perl/Java, so visualizing how this will work in assembly is a bit daunting. Also, I'm not sure what the symbol is in the algorithm above?

Thank you for your help and critique!

0 投票
5 回答
4805 浏览

c# - .NET 中的格雷码

.NET 框架中的任何地方是否都有内置的格雷码数据类型?或者灰色和二进制之间的转换实用程序?我可以自己做,但如果轮子已经被发明出来......

0 投票
2 回答
1413 浏览

math - 格雷码是否存在于两个以外的其他碱基?

只是好奇,格雷码是否为基数二以外的基数定义?

我试着以 3 为基数,写连续的值,注意一次只改变一个小字符。我已经能够枚举所有高达 26 (3**3-1) 的值,它似乎工作。

我能看到的唯一问题是,当循环回零时,所有三个trit 都会发生变化。但这仅适用于奇数碱基。当使用偶数基时,循环回零只会改变一个数字,如二进制。

我什至猜想它可以扩展到其他基础,甚至是十进制。在以十为底数时,这可能会导致另一个排序... :-)

现在的问题是,有人听说过吗?有申请吗?还是只是数学狂潮?

0 投票
17 回答
7720 浏览

algorithm - 代码高尔夫:格雷代码

挑战

按字符数计算的最短程序,输出 n 位格雷码n将是一个小于(由于用户建议)从标准输入中获取的任意数字。格雷码将打印在标准输出中,如示例中所示。1000100000

注意:我不希望程序在合理的时间内打印格雷码(n=100000有点矫枉过正);我确实希望它开始打印。

例子

输入

预期输出

0 投票
4 回答
8393 浏览

algorithm - 第n个格雷码

第n个格雷码的计算公式为:

我将其编码为:

有人可以解释上述公式是如何工作的,或者可能是它的推导吗?

0 投票
8 回答
4333 浏览

algorithm - 如何在恒定时间内找到格雷码中的下一位更改?

我有一个小型 8 位处理器,它在一些输出线上有一个 N 到 M 解码器 - 例如,对于 5 到 32 位的情况,我写 00101 并且位 5 更改状态。输出的唯一接口是更改状态,没有回读。

设备对发生的事件进行快速(但随机)计数,并应将此计数作为“单个位更改”代码提供给另一个设备。输出引脚由另一个设备并行读取,并且可以根据其他设备的决定尽可能快地或尽可能少地读取,因此计数是必要的。

我不需要使用标准的二进制反射格雷码 - 我可以使用任何一位更改代码。

但是,我希望能够跟踪下一点以有效地进行更改。

我没有“LowestBitSet”指令,并且在四个 8 位寄存器中找到最低位设置是耗时的 - 所以我不能使用这种“通用”方法:

我希望在尽可能少的内存和寄存器中计算它,而且对于任何大型查找表来说,内存肯定太有限了。周期时间是更重要的因素。

对算法有什么建议吗?

0 投票
1 回答
1288 浏览

c++ - 将二进制数的字符数组转换为 C++ 中的格雷码计数器

有没有办法将二进制数的char数组转换为格雷码。例如,我有以下代码:

我想要的是将此 binaryNum 转换为格雷码,即一次更改一位。有人可以帮我写代码吗?例如,我有一个 char binaryNum[10] == 101101 并且我想将其转换为格雷码,即一次只更改一位,例如:101100 101110 101111 类似这样的..

0 投票
3 回答
4967 浏览

c - 格雷码到二进制转换

给定一个数字的格雷码,找到该数字的二进制代码。

格雷码是一种二进制数字系统,其中两个连续值仅在一位上有所不同。

例如两位格雷码是:0 - 00 1 - 01 2 - 11 3 - 10

二进制是:

0 - 00 1 - 01 2 - 10 3 - 11

提供一种将数字的格雷码转换为二进制码的算法。

例如,输入为 11。预期输出为 10。

0 投票
7 回答
8840 浏览

c++ - 格雷码到二进制码的转换

所以我正在尝试编写一个函数,将 7 位格雷码转换为相应的 7 位二进制码。

以下是如何转换 -

  • 灰度值位 ---- MS 位 > (G6) G5 G4 G3 G2 G1 G0 *
  • 二进制值位 -- MS 位 > (B6) B5 B4 B3 B2 B1 B0 *

  • B6 = G6 // MS 位始终相同

  • B5 = B6 ^ G5 // 异或位一起构造 7 位二进制值
  • B4 = B5 ^ G4
  • B3 = B4 ^ G3
  • B2 = B3 ^ G2
  • B1 = B2 ^ G1
  • B0 = B1 ^ G0

到目前为止,这是我的功能-


我需要找到一种方法来访问每次循环运行所需的特定位......需要像使用数组一样访问这些位......

任何想法/指针?谢谢 :)

0 投票
3 回答
10098 浏览

c# - 如何从十进制数中获取格雷码

可能重复:
.NET 中的格雷码

我想从等效的十进制中获取数字的格雷码。

例子: