格雷码转换器
格雷码(反射二进制)是一种二进制数的排列方式,其中相邻的两个值仅相差一个比特。这种单比特变化特性使其在旋转编码器、卡诺图和抗错位置检测中很有价值,因为当多个比特本会同时翻转时,不会出现瞬态的中间值。二进制用 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 位的数值也能精确转换。位宽选项仅用于补零显示。
相关工具
ASCII 码表
256 行 ASCII / 扩展 ASCII 表 — 十进制、十六进制、八进制、二进制,以及控制字符名称。可搜索、可复制。
开发 0 0
进制转换器
在二进制、八进制、十进制和十六进制之间转换数字。
转换 0 0
BCD 转换器(二进制编码十进制)
十进制与 8421 二进制编码十进制互转 — 每位 4 比特半字节、压缩 BCD 十六进制字节、BCD 有效性校验。
转换 0 0
字节大小换算(KB / KiB / MB / MiB / ...)
在十进制(KB、MB、GB——SI 基数 1000)与二进制(KiB、MiB、GiB——IEC 基数 1024)字节单位间换算,附比特。
转换 0 0
IPv4 地址转换器
在点分十进制、32 位整数、十六进制和二进制之间转换 IPv4 地址,并判断其为私有、公网、环回等类型。
网络 0 0
位运算计算器
对两个整数进行 AND、OR、XOR、NOT 和移位运算 —— 以二进制、十六进制、无符号和有符号十进制显示,可选 8、16、32 或 64 位宽。
开发 0 0