跳到主要内容

二进制到格雷码转换器

在二进制和格雷码(反射二进制)之间转换,其中两个连续值仅相差一位。支持两个方向加十进制等价值。

输入

仅限数字 0 和 1,最多 64 位。

输出

转换后的代码(输出)的十进制值。

这对您有帮助吗?

使用指南

什么是格雷码?

格雷码(也称为反射二进制码)是一种对二进制数字系统进行排序的方式,使得任何两个连续值恰好相差一位。标准二进制计数没有这个属性:从 0111 到 1000 会同时翻转所有四位。格雷码消除了"多位跳跃",因此在计数时值每次仅在一个位置发生变化。

为什么单位改变很重要

在物理系统和数字系统中,比特很少在完全相同的时刻切换。如果二进制计数器的多个比特同时改变,读取器可能会短暂看到无效的中间值——一个故障。因为格雷码仅在相邻值之间改变一位,所以这种竞争条件消失了,这就是为什么它出现在多个地方:

  • 旋转编码器和绝对位置传感器 —— 轴位置从格雷码编码的磁道直接读取,因此传感器比特之间的机械对齐不会产生完全错误的读数,只会产生偏差一个单位的读数。
  • 卡诺图 —— 卡诺图的行和列标题按格雷码顺序排列,使得逻辑相邻的单元(相差一个输入变量)在物理上也相邻,使得 1 的组很容易用眼睛发现。
  • 错误纠正和数字通信 —— 因为相邻代码值相差一位,一位传输错误倾向于产生接近的解码值,而不是完全不同的值,这是某些编码方案用来限制错误影响的方法。
  • 模数转换器 —— 在转换边界附近采样不太可能产生大的多位输出错误。

如何使用此工具

  1. 字段中输入仅由数字 01 组成的值(最多 64 位)。
  2. 选择方向二进制 → 格雷码用于编码,或格雷码 → 二进制用于解码。
  3. 转换后的值及其十进制等价在您输入时自动更新。

转换公式

**二进制 → 格雷:**最高位(最有效位)按原样复制;其他所有格雷位都是当前和前一个二进制位的异或。这是著名公式 gray = binary XOR (binary >> 1) 的位字符串形式。

**格雷 → 二进制:*最高位按原样复制;其他所有二进制位都是先前解码的*二进制位和当前格雷位的异或。与编码方向不同,解码是顺序的——每个输出位都依赖于前一个位。

常见问题

格雷码代表的数字与二进制不同吗? 不,相同长度的格雷码字和二进制字可以各自表示同一个基础整数;它们只是通过同一范围计数的两种不同位模式。此工具显示刚刚生成的任何代码的十进制值,因此您可以看到它如何映射到普通数字。

格雷码的长度始终与输入相同吗? 是的,两个方向都保持位长度——没有添加或删除位,因此前导结构(以及您输入的任何前导零)会传递到结果。

我可以直接转换十进制数字吗? 首先将其转换为二进制(例如使用本网站的二进制/十进制转换器),然后将二进制字符串粘贴在这里。

隐私

此工具完全在您的浏览器中运行。您的输入永远不会上传到服务器。

binarygray codereflected binarybitwiseencoding

Use it from code

From 3 credits per call

REST API

curl -X POST https://api.iotools.cloud/v1/tool/binary-gray-code \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input": "1011",
    "mode": "binary-to-gray"
  }'

Swap in your own key from your account. The tool's fields are the body — no wrapper.

Ask an AI agent

Use the IOTools `binary-gray-code` tool (Binary to Gray Code Converter) on this input:

YOUR_INPUT_HERE

Paste this at any agent connected to the IOTools MCP server, then add your input.

喜欢这些工具?去掉广告吧。

一次性付款即可永久移除您账户中的所有广告。无需订阅,不追踪。