RosettaCodeData/Task/Gray-code/Sidef/gray-code.sidef

15 lines
228 B
Text
Raw Permalink Normal View History

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