Question: Develop the following Python program: a tool to convert binary numbers to decimal, and decimal numbers to binary, and a simple text-only menu to add

Develop the following Python program: a tool to convert binary numbers to decimal, and decimal

numbers to binary, and a simple text-only menu to add or subtract numbers. In this program,

binary numbers will be respresented as text strings of only 1s or 0s, and should always appear in

strings that are multiples of eight characters long (length of 8, or 16, or 24, ....) In case the number

to be represented does not require the full amount of the length, the leading positions are filled

with 0s. Decimal and binary numbers will all be integers.

The algorithm to convert binary numbers to decimal is to start at the high end, scanning through

the string from left to right. Each time a 1 character is encountered, the value of 2 raised to the

appropriate power is added in. Recall that the last position is 2

0

, or the value of 1. (In an eight-bit

binary string, the first position is 2

7

, or 128.)

The algorithm to convert decimal numbers into binary is as follows.

1. First, divide the number by 2 using integer divison, retaining both the quotient and the

remainder.

2. The remainder becomes the last character of the binary string, whether 1 or 0.

3. The quotient is then divided by 2 again, using integer division and retaining both the quotient

and the remainder.

4. This new remainder is pre-fixed to the front end of the binary string.

5. Steps 3 and 4 are repeated as often as necessary, until both the quotient and remainder come

out as zero.

6. Once the binary number string is completed, sufficient zeros are pre-fixed to the font end to

round out a multiple of eight bits in length.

Each of the conversion routines should be placed inside of functions to be easily called from the

main program. (As desired, they could be spread over several functions, if needed, but each of

them ought to have one main function that is to be called to start the conversion.)

Once both conversion routines are ready, a simple menu program should be written. It prints out

to the screen a menu that can be similar to the following:

What do you want to do?

1. Enter the first binary number

2. Enter the second binary number

3. Add the two binary numbers together

4. Subtract the second binary number from the first

5. Exit the program

The user makes a choice by entering 1 through 4 as desired. If the first number is entered, it is

shown back to the user with appropriate text to explain it. If the second number is entered, both

numbers are shown back to the user, with text explanations. In either case, the menu is displayed

again afterwards. When option 3 is selected, the two numbers are added together and the sum

displayed. All of these numbers are to be entered by the user as binary text strings, converted to

decimal, and added, and converted back for display on the screen. (You may choose to display

both decimal and binary on the screen, or only the binary.)

When option 4 is selected, subtraction is performed rather than addition. In this situation, care

should be taken to avoid negative numbers. Your program will have to include some mechanism to

detect the possibility of a negative number and responding gracefully should this happen.

- Be able to adapt to bad or weird inputs: e.g., wrong option (not 1-5), not binary number

(e.g., 42 or garden), weird order of entering options (e.g., 2 before 1, 3 before 1 and 2), a

binary number whose length is not a multiple of 8. In many cases, you would simply ask the

user to correct their input.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!