June 2018 Update
This commit is contained in:
parent
ba8067c3b7
commit
22f33d4004
5278 changed files with 84726 additions and 14379 deletions
16
Task/Gray-code/Perl-6/gray-code.pl6
Normal file
16
Task/Gray-code/Perl-6/gray-code.pl6
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
sub gray_encode ( Int $n --> Int ) {
|
||||
return $n +^ ( $n +> 1 );
|
||||
}
|
||||
|
||||
sub gray_decode ( Int $n is copy --> Int ) {
|
||||
my $mask = 1 +< (32-2);
|
||||
$n +^= $mask +> 1 if $n +& $mask while $mask +>= 1;
|
||||
return $n;
|
||||
}
|
||||
|
||||
for ^32 -> $n {
|
||||
my $g = gray_encode($n);
|
||||
my $d = gray_decode($g);
|
||||
printf "%2d: %5b => %5b => %5b: %2d\n", $n, $n, $g, $d, $d;
|
||||
die if $d != $n;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue