How to resolve the algorithm Gray code step by step in the Raku programming language

Published on 12 May 2024 09:40 PM

How to resolve the algorithm Gray code step by step in the Raku programming language

Table of Contents

Problem Statement

Create functions to encode a number to and decode a number from Gray code. Display the normal binary representations, Gray code representations, and decoded Gray code values for all 5-bit binary numbers (0-31 inclusive, leading 0's not necessary). There are many possible Gray codes. The following encodes what is called "binary reflected Gray code." Encoding (MSB is bit 0, b is binary, g is Gray code): Or: Decoding (MSB is bit 0, b is binary, g is Gray code):

Let's start with the solution:

Step by Step solution about How to resolve the algorithm Gray code step by step in the Raku programming language

Source code in the raku programming language

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;
}


  

You may also check:How to resolve the algorithm UTF-8 encode and decode step by step in the Scala programming language
You may also check:How to resolve the algorithm Polymorphism step by step in the Ela programming language
You may also check:How to resolve the algorithm Hello world/Text step by step in the PASM programming language
You may also check:How to resolve the algorithm Last Friday of each month step by step in the PHP programming language
You may also check:How to resolve the algorithm Jaro-Winkler distance step by step in the Java programming language