2016-12-05 23:44:36 +01:00
|
|
|
func bin2gray(n) {
|
2017-09-23 10:01:46 +02:00
|
|
|
n ^ (n >> 1)
|
2016-12-05 23:44:36 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func gray2bin(num) {
|
2017-09-23 10:01:46 +02:00
|
|
|
var bin = num
|
|
|
|
|
while (num >>= 1) { bin ^= num }
|
|
|
|
|
return bin
|
2016-12-05 23:44:36 +01:00
|
|
|
}
|
|
|
|
|
|
2017-09-23 10:01:46 +02:00
|
|
|
{ |i|
|
|
|
|
|
var gr = bin2gray(i)
|
|
|
|
|
printf("%d\t%b\t%b\t%b\n", i, i, gr, gray2bin(gr))
|
|
|
|
|
} << ^32
|