格雷码(Gray Code)是一种相邻数值之间只有一位二进制位不同的编码方式,常用于数字电路和组合数学中。下面是一段把普通二进制数转换为格雷码的 C 语言实现。

// num to gray code
unsigned int binaryToGray(unsigned int num)
{
    return num ^ (num >> 1);
}

核心思路很直接:把输入 num 与它自身右移一位后的结果做异或,即可得到对应的格雷码。