格雷码转换器
转换
格雷码(反射二进制)是一种二进制数的排列方式,其中相邻的两个值仅相差一个比特。这种单比特变化特性使其在旋转编码器、卡诺图和抗错位置检测中很有价值,因为当多个比特本会同时翻转时,不会出现瞬态的中间值。二进制用 g = b XOR (b >> 1) 转换为格雷码;解码则用累积异或逐位还原。本工具可在所有方向转换:输入十进制数、普通二进制值或格雷码值,即显示其他表示形式。选择固定位宽可为定宽寄存器显示补零。
—
十进制
42二进制
101010格雷码
111111对照表 (0-7)
| 十进制 | 二进制 | 格雷码 |
|---|---|---|
| 0 | 000 | 000 |
| 1 | 001 | 001 |
| 2 | 010 | 011 |
| 3 | 011 | 010 |
| 4 | 100 | 110 |
| 5 | 101 | 111 |
| 6 | 110 | 101 |
| 7 | 111 | 100 |
二进制 → 格雷码: g = b XOR (b >> 1)。相邻格雷码值正好相差一个比特。位宽仅用于输出补零。
使用方法
- 选择输入是十进制、二进制还是格雷码。
- 输入数值,十进制、二进制和格雷码形式即时更新。
- 可选设置位宽(4/8/16/32)为二进制和格雷码输出补零。
常见问题
- 格雷码用于什么?
- 旋转和线性位置编码器、卡诺图排序,以及任何需要相邻状态间仅变化一个比特以避免转换故障的系统。
- 如何将二进制转换为格雷码?
- 将数值与其右移一位的结果异或: gray = n ^ (n >> 1)。解码则从最高有效位起用级联异或反向还原。
- 为什么二进制 2(10)和 3(11)变成格雷码 11 和 10?
- 格雷码保证相邻值间仅一个比特之差。从 2 到 3 在二进制中只有最后一位翻转,但格雷码序列会反射以保持每一步都是单比特变化。
- 能处理大数吗?
- 可以 — 转换使用任意精度整数,因此远超 32 或 64 位的数值也能精确转换。位宽选项仅用于补零显示。
相关工具
BCD 转换器(二进制编码十进制)
十进制与 8421 二进制编码十进制互转 — 每位 4 比特半字节、压缩 BCD 十六进制字节、BCD 有效性校验。
转换00
二进制补码转换器 (8–64 位)
输入十进制、hex、二进制或八进制值,查看其 8/16/32/64 位二进制补码位模式,以及有符号/无符号读法、hex、八进制与反码 — 在浏览器内完成。
转换00
IEEE 754 浮点转换器 (32 与 64 位)
查看任意数字在 float32 与 float64 下的精确 IEEE 754 位布局 — 符号、指数与尾数位、hex、存储值与舍入 — 或将 hex 位解码回数字,全部在浏览器内完成。
转换00
罗马数字转换器
在 1 到 3999 的阿拉伯数字与罗马数字之间互转。
转换00
进制转换器
在二进制、八进制、十进制和十六进制之间转换数字。
转换00
单位换算
换算长度、重量、温度、面积、体积、速度和时间。
转换00