二进制到格雷码转换器
在二进制和格雷码(反射二进制)之间转换,其中两个连续值仅相差一位。支持两个方向加十进制等价值。
输入
仅限数字 0 和 1,最多 64 位。
输出
转换后的代码(输出)的十进制值。
使用指南
什么是格雷码?
格雷码(也称为反射二进制码)是一种对二进制数字系统进行排序的方式,使得任何两个连续值恰好相差一位。标准二进制计数没有这个属性:从 0111 到 1000 会同时翻转所有四位。格雷码消除了"多位跳跃",因此在计数时值每次仅在一个位置发生变化。
为什么单位改变很重要
在物理系统和数字系统中,比特很少在完全相同的时刻切换。如果二进制计数器的多个比特同时改变,读取器可能会短暂看到无效的中间值——一个故障。因为格雷码仅在相邻值之间改变一位,所以这种竞争条件消失了,这就是为什么它出现在多个地方:
- 旋转编码器和绝对位置传感器 —— 轴位置从格雷码编码的磁道直接读取,因此传感器比特之间的机械对齐不会产生完全错误的读数,只会产生偏差一个单位的读数。
- 卡诺图 —— 卡诺图的行和列标题按格雷码顺序排列,使得逻辑相邻的单元(相差一个输入变量)在物理上也相邻,使得 1 的组很容易用眼睛发现。
- 错误纠正和数字通信 —— 因为相邻代码值相差一位,一位传输错误倾向于产生接近的解码值,而不是完全不同的值,这是某些编码方案用来限制错误影响的方法。
- 模数转换器 —— 在转换边界附近采样不太可能产生大的多位输出错误。
如何使用此工具
- 在值字段中输入仅由数字
0和1组成的值(最多 64 位)。 - 选择方向:二进制 → 格雷码用于编码,或格雷码 → 二进制用于解码。
- 转换后的值及其十进制等价在您输入时自动更新。
转换公式
**二进制 → 格雷:**最高位(最有效位)按原样复制;其他所有格雷位都是当前和前一个二进制位的异或。这是著名公式 gray = binary XOR (binary >> 1) 的位字符串形式。
**格雷 → 二进制:*最高位按原样复制;其他所有二进制位都是先前解码的*二进制位和当前格雷位的异或。与编码方向不同,解码是顺序的——每个输出位都依赖于前一个位。
常见问题
格雷码代表的数字与二进制不同吗? 不,相同长度的格雷码字和二进制字可以各自表示同一个基础整数;它们只是通过同一范围计数的两种不同位模式。此工具显示刚刚生成的任何代码的十进制值,因此您可以看到它如何映射到普通数字。
格雷码的长度始终与输入相同吗? 是的,两个方向都保持位长度——没有添加或删除位,因此前导结构(以及您输入的任何前导零)会传递到结果。
我可以直接转换十进制数字吗? 首先将其转换为二进制(例如使用本网站的二进制/十进制转换器),然后将二进制字符串粘贴在这里。
隐私
此工具完全在您的浏览器中运行。您的输入永远不会上传到服务器。
Use it from code
From 3 credits per callREST 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_HEREPaste this at any agent connected to the IOTools MCP server, then add your input.