Corning Community College
CSCS2330 Discrete Structures
To apply your skills in crafting and deploying an algorithm that will enable you to convert a value from a source base to a destination base.
Number representation, as we first learned it, revealed a beautiful system of places with various weight values. Each place can increment or decrement its available counting digits until we reach either end of our range, then we “roll over”. In the case of addition, our highest counting digit rolls over to our lowest one, and we carry a one over to the next highest weighted place value.
What counting values are available depend on the numeric base we are operating within; base 10 (decimal) gives us ten unique counting digits: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
Base 5 gives us five unique counting digits: 0, 1, 2, 3, 4.
Base 12 gives us twelve unique counting digits: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B.
The standard convention used once we exceed base 10 is to start utilizing the letters of the alphabet.
In this manner, we can easily interact with bases 2-36 (10 number digits, 26 alphabet letters, 10+26 = 36); we omit the non-sensical bases of 0 and 1 as a matter of course.
Converting between bases, we need to preserve the stored value, while adapting it to the new quantity of counting digits.
Your task is to write a program that:
Additional constraints:
Sample output is as follows:
lab46:~/src/discrete/nbm0$ ./nbm0 8 31 10 25 lab46:~/src/discrete/nbm0$
lab46:~/src/discrete/nbm0$ ./nbm0 9 8843 3 22221110 lab46:~/src/discrete/nbm0$
lab46:~/src/discrete/nbm0$ ./nbm0 2 11010001 16 D1 lab46:~/src/discrete/nbm0$
To successfully complete this project, the following criteria must be met:
To submit this program to me using the Makefile tool (make submit), run the following:
lab46:~/src/discrete/nbm0$ make submit removed ‘nbm0’ removed ‘errors’ Project backup process commencing Taking snapshot of current project (nbm0) ... OK Compressing snapshot of nbm0 project archive ... OK Setting secure permissions on nbm0 archive ... OK Project backup process complete Submitting discrete project "nbm0": -> ../nbm0-YYYYMMDD-HH.tar.gz(OK) SUCCESSFULLY SUBMITTED lab46:~/src/discrete/nbm0$
You should get some sort of confirmation indicating successful submission if all went according to plan. If not, check for typos and or locational mismatches.
What I will be looking for:
130:nbm0:final tally of results (130/130) *:nbm0:submitted file called nbm0.c [13/13] *:nbm0:adequate, consistent indentation [13/13] *:nbm0:adequate, sufficient why/how comments [13/13] *:nbm0:adequate error checking [13/13] *:nbm0:adequate modifications [13/13] *:nbm0:commit and pushed to repo [13/13] *:nbm0:clean compilation, no warnings/errors [13/13] *:nbm0:runtime tests succeed [39/39]
Additionally: