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

Published on 12 May 2024 09:40 PM
#Bc

How to resolve the algorithm Gray code step by step in the bc 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 bc programming language

Source code in the bc programming language

scale = 0  /* to use integer division */

/* encode Gray code */
define e(i) {
	auto h, r

	if (i <= 0) return 0
	h = i / 2
	r = e(h) * 2                /* recurse */
	if (h % 2 != i % 2) r += 1  /* xor low bits of h, i */
	return r
}

/* decode Gray code */
define d(i) {
	auto h, r

	if (i <= 0) return 0
	h = d(i / 2)                /* recurse */
	r = h * 2
	if (h % 2 != i % 2) r += 1  /* xor low bits of h, i */
	return r
}


/* print i as 5 binary digits */
define p(i) {
	auto d, d[]

	for (d = 0; d <= 4; d++) {
		d[d] = i % 2
		i /= 2
	}
	for (d = 4; d >= 0; d--) {
		if(d[d] == 0) "0"
		if(d[d] == 1) "1"
	}
}

for (i = 0; i < 32; i++) {
	/* original */ t = p(i); " => "
	/* encoded */ e = e(i); t = p(e); " => "
	/* decoded */ d = d(e); t = p(d); "
"
}
quit


  

You may also check:How to resolve the algorithm Show the epoch step by step in the Lua programming language
You may also check:How to resolve the algorithm Unprimeable numbers step by step in the J programming language
You may also check:How to resolve the algorithm A+B step by step in the BQN programming language
You may also check:How to resolve the algorithm Magic 8-ball step by step in the ALGOL 68 programming language
You may also check:How to resolve the algorithm Empty program step by step in the Peri programming language