用带负数的浮点数在格雷码中编码一个值

Encoding a value in gray code with floating point with negatives

我这里的objective是为了能够使用格雷码将-4.0到4.0之间的任意数字转换成5位二进制串。我还需要能够转换回十进制。

感谢您提供的任何帮助。

如果有帮助,这里的大图是我从神经网络中获取权重并将它们变异为二进制字符串。

如果只有 5 位可用,则只能编码 2^5 = 32 个不同的输入值。
格雷码很有用,如果当输入值变化缓慢时,编码值中的每个变化只有一位。
所以也许最直接的实现是将你的输入范围 -4.0 到 4.0 映射到整数范围 0 … 31,然后用 standard Gray code 表示这些整数,它可以很容易地转换回 0 … 31 然后到 -4.0 到 4.0.