不喜欢广告? 去 无广告 今天
二进制至灰码转换器
开发人员
广告 移除?
广告 移除?
指导
二进制至灰码转换器
将二进制与格雷码(反射二进制)瞬间转换。输入一个二进制数、格雷码或十进制值,并查看所有表示形式,包括逐步的异或运算可视化,展示如何进行转换。支持64位值的批量处理模式。
如何使用
选择输入类型(二进制、格雷码或十进制),输入一个值,并选择位宽(自动、4位、8位、16位、32位或64位)。转换器立即显示所有表示形式:二进制、格雷码、十进制、十六进制和八进制——每种都有复制按钮。查看逐步的XOR可视化来理解每一位如何进行精确转换。检查转换表以快速参考,或者使用批量模式一次性将多个值进行转换。
特征
- 双向转换 将二进制转换为格雷码、格雷码转换为二进制,或从十进制开始。所有转换都会瞬间完成,无需按下任何按钮。
- **异或(XOR)逐步可视化** *(Note: The original title was too brief; I translated it as a general explanation of XOR visualization in a step-by-step manner.)* 查看每一位的精确异或运算,并使用有颜色编码的配对来帮助理解并验证转换算法。
- 多种输出格式 二进制、格雷码、十进制、十六进制和八进制——每种都有快速使用的专用按钮。
- 转换表 参考表显示十进制、二进制和格雷码,适用于范围0-15、0-31、0-63或0-255。当前输入值已突出显示。
- 批量模式 一次性批量转换多个值。每行输入一个值,选择输入和输出格式,并获得带有全选复制功能的表格结果。
- 灵活位宽 自动检测或手动设置为4位、8位、16位、32位或64位。对于超过32位的值使用BigInt处理。
- 参考指南 灰码解释、异或算法、单位位过渡特性、反射构造及其实际应用。
灰码是什么?
灰码(也称为反射二进制码)是一种二进制数字系统,其中两个连续的值仅在一位上不同。标准二进制计数会同时改变多个位(例如从0111变为1000需要改变四位),这可能导致硬件出现故障。灰码消除了这一问题——每次增量仅改变一位。这种特性使灰码在旋转编码器、模拟数字转换器、卡诺图、错误校正以及任何涉及同时位变化导致错误的应用场景中至关重要。
广告 移除?
如何将二进制转换为格雷码?
转换使用简单的异或运算:最显著位(MSB)保持不变,每个后续格雷码位是当前与前一位二进制位的异或结果。用公式表示为:gray[0] = binary[0],gray[i] = binary[i-1] XOR binary[i]。或者可以这样计算:gray = binary XOR (binary >> 1)。例如,二进制数1011转换成格雷码为1110:最显著位保持为1,然后1异或0=1,0异或1=1,1异或1=0。
如何将格雷码还原为二进制?
反向转换是从最高有效位(MSB)开始构建二进制数:最高位保持不变,每个后续的二进制位是前一个二进制位与当前格雷码位进行异或运算。用公式表示为:binary[0] = gray[0],binary[i] = binary[i-1] XOR gray[i]。也可以通过迭代计算:从mask = gray开始,然后不断执行mask >>= 1和gray ^= mask操作,直到mask变为0。最终结果就是二进制值。
为什么旋转编码器使用格雷码?
旋转编码器通过多轨道由传感器读取来测量角度位置。在标准二进制中,从特定值(如0111切换到1000)需要所有位同时变化——但机械传感器无法同时精确开关,导致短暂错误读取。格雷码保证每步仅有一位变化,消除这些过渡误差。这使得旋转编码器在高速下仍然可靠,在工业自动化、机器人和电机控制中尤为关键。
我的数据是否已发送到服务器?
不——所有的转换都在浏览器端通过JavaScript位运算和BigInt处理大数值进行,无需传输任何数据到服务器。XOR计算、表生成以及批量处理均在客户端以零网络请求完成。
