그레이 코드

그레이 코드란 이진수로 표현했을 때, 이전 수와 현재 수의 비트 차이가 1인 부호를 말한다.

구하는데 여러 가지 방법이 있지만, 최근 알게된 독특한 방법이 있어 소개해보고자 한다.

i번째 수는 i ^ (i >> 1)

01 0001
02 0011
03 0010
04 0110
05 0111
06 0101
07 0100
08 1100
09 1101
10 1111
11 1110
12 1010
13 1011
14 1001
...