问题标签 [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.
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!
c# - .NET 中的格雷码
.NET 框架中的任何地方是否都有内置的格雷码数据类型?或者灰色和二进制之间的转换实用程序?我可以自己做,但如果轮子已经被发明出来......
math - 格雷码是否存在于两个以外的其他碱基?
只是好奇,格雷码是否为基数二以外的基数定义?
我试着以 3 为基数,写连续的值,注意一次只改变一个小字符。我已经能够枚举所有高达 26 (3**3-1) 的值,它似乎工作。
我能看到的唯一问题是,当循环回零时,所有三个trit 都会发生变化。但这仅适用于奇数碱基。当使用偶数基时,循环回零只会改变一个数字,如二进制。
我什至猜想它可以扩展到其他基础,甚至是十进制。在以十为底数时,这可能会导致另一个排序... :-)
现在的问题是,有人听说过吗?有申请吗?还是只是数学狂潮?
algorithm - 代码高尔夫:格雷代码
挑战
按字符数计算的最短程序,输出 n 位格雷码。n
将是一个小于(由于用户建议)从标准输入中获取的任意数字。格雷码将打印在标准输出中,如示例中所示。1000
100000
注意:我不希望程序在合理的时间内打印格雷码(n=100000
有点矫枉过正);我确实希望它开始打印。
例子
输入:
预期输出:
algorithm - 第n个格雷码
第n个格雷码的计算公式为:
我将其编码为:
有人可以解释上述公式是如何工作的,或者可能是它的推导吗?
algorithm - 如何在恒定时间内找到格雷码中的下一位更改?
我有一个小型 8 位处理器,它在一些输出线上有一个 N 到 M 解码器 - 例如,对于 5 到 32 位的情况,我写 00101 并且位 5 更改状态。输出的唯一接口是更改状态,没有回读。
设备对发生的事件进行快速(但随机)计数,并应将此计数作为“单个位更改”代码提供给另一个设备。输出引脚由另一个设备并行读取,并且可以根据其他设备的决定尽可能快地或尽可能少地读取,因此计数是必要的。
我不需要使用标准的二进制反射格雷码 - 我可以使用任何一位更改代码。
但是,我希望能够跟踪下一点以有效地进行更改。
我没有“LowestBitSet”指令,并且在四个 8 位寄存器中找到最低位设置是耗时的 - 所以我不能使用这种“通用”方法:
我希望在尽可能少的内存和寄存器中计算它,而且对于任何大型查找表来说,内存肯定太有限了。周期时间是更重要的因素。
对算法有什么建议吗?
c++ - 将二进制数的字符数组转换为 C++ 中的格雷码计数器
有没有办法将二进制数的char数组转换为格雷码。例如,我有以下代码:
我想要的是将此 binaryNum 转换为格雷码,即一次更改一位。有人可以帮我写代码吗?例如,我有一个 char binaryNum[10] == 101101 并且我想将其转换为格雷码,即一次只更改一位,例如:101100 101110 101111 类似这样的..
c - 格雷码到二进制转换
给定一个数字的格雷码,找到该数字的二进制代码。
格雷码是一种二进制数字系统,其中两个连续值仅在一位上有所不同。
例如两位格雷码是:0 - 00 1 - 01 2 - 11 3 - 10
二进制是:
0 - 00 1 - 01 2 - 10 3 - 11
提供一种将数字的格雷码转换为二进制码的算法。
例如,输入为 11。预期输出为 10。
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
到目前为止,这是我的功能-
我需要找到一种方法来访问每次循环运行所需的特定位......需要像使用数组一样访问这些位......
任何想法/指针?谢谢 :)