Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

/* Number converter Menu Convert between integer, binary and hexadecimal This program should accept numeric values in hexadecimal, decimal and binary formats as: Hex 0x0

image text in transcribedimage text in transcribedimage text in transcribed

/* Number converter Menu Convert between integer, binary and hexadecimal This program should accept numeric values in hexadecimal, decimal and binary formats as: Hex 0x0 to 0xFFFFFFFF Dec 0 to 4294967295 Bin b0 to b11111111111111111111111111111111 After a value is input the code in main will interpret the data types above an process the conversion to an unsigned int. The unsigned int will be used to convert the input to strings containing hexadecimal and binary strings. */ #include #include //int input_to_decimal(char *input); unsigned int bin_to_uint(char *input); unsigned int hex_to_uint(char *input); unsigned int dec_to_uint(char *input); void uint_to_hex(unsigned int n, char *output); void uint_to_bin(unsigned int n, char *output); int error = 0; int main(){ char input[50]; unsigned int n = 0; char output[50]; // Write code here to test your functions // Uncomment code below when done /* printf("Enter a binary, decimal or hexadecimal number "); printf("convert > "); gets(input); // Detect input data type // Hexadecimal if(input[0] == '0' && input[1] == 'x'){ n = hex_to_uint(input); } // Decimal else if(input[0] >= '0' && input[0]

else if(input[0] == 'b'){ n = bin_to_uint(input); } // Unknown else{ printf("ERROR: Unknown data type: %s ", input); } // Print results printf("The decimal value of %s is %u ", input, n); uint_to_hex(n, output); printf("The hexadecimal value of %s is %s ", input, output); uint_to_bin(n, output); printf("The binary value of %s is %s ", input, output); */ return 0; } /* This function converts the value part of the hex string to an unsigned integer value. The first two chars are 0x, which tells that the string is in hex. Start processing the value at index 2 until the null, calculating the int value as you would on paper. Try on paper first. */ // Convert a hexadecimal char array to uint unsigned int hex_to_uint(char *input){ // Declare result and set to zero unsigned int res = 0; // Declare and set multiplier to 1 // Declare iterator // Loop through value part of input string // If between 0 and 9 add 0 to 9 to res with multiplier // If between A and F add 10 to 15 to res with multiplier // Error - exit // Advance multiplier to next position value return res; } /* Copy hex_to_uint() and modify for decimal input. */ // Convert a unsigned integer char array to uint unsigned int dec_to_uint(char *input){ // Declare result and set to zero unsigned int res = 0; return res;

} /* Copy dec_to_uint() and modify for binary input. */ // Convert a binary char array to unsigned int unsigned int bin_to_uint(char *input){ // Declare result and set to zero unsigned int res = 0; return res; } /* This function converts from unsigned int to a hex char array. Try this on paper before coding. */ // Convert a unsigned integer char array to hexadecimal void uint_to_hex(unsigned int n, char *output){ // Declare a uint for remainder // Declare an int for division // Declare a char array buffer // Use a loop to generate a hex string - string will be reverse // Get last hex char // Put null at end of buffer // Copy 0x to output string // Copy chars from buffer in reverse order to output string return; } /* Copy uint_to_hex() and modify for bin */ // Convert a unsigned integer char array to binary void uint_to_bin(unsigned int n, char *output){ return; }} /* Copy dec_to_uint() and modify for binary input. */ // Convert a binary char array to unsigned int unsigned int bin_to_uint(char *input){ // Declare result and set to zero unsigned int res = 0; return res; } /* in C programming language

Step 1: Detect the data type from the input: The program should accept numeric values in hexadecimal, decimal and binary formats as: Hex: 0x0 to 0xFFFFFFFF Dec: 0 to 4294967295 Bin : b0 to b11111111111111111111111111111111 Step 2: Convert Hex/Dec/Bin to unsigned int (10 points / function) After a value is input, the code in main will interpret the data type and process the conversion to an unsigned int. Step 3: Convert unsigned int to Hex/Bin (10 points / function) The unsigned int will be used to convert the input to strings containing hexadecimal, octal and binary. Try converting on paper first before touching the code. Pick a number by yourself and write the converting steps to report. It should include: (10 points) Unsigned int to hex Unsigned int to bin Bin to unsigned Dec to unsigned Hex to unsigned Test on paper: Example of hex to unsigned int and unsigned int to hex To convert from hex string to unsigned int, accumulate the position-wise values of each character in the string. Remember that you can perform math operations on char data because they are numbers and have specific positions in the ASCII table (see below). Convert 0xFFFF to unsigned int, considering that F=15 and each hex char a multiple of 16 (recall hex is the number representation with base-16) : 151+1516+15256+154096=65,535 From an unsigned int 65,535 to hex: 1. 65,535/16=4,095 and 65,535%16=15 2. 4,095/16=255 and 4,095%16=15 3. 255/16=15 and 255%16=15 4. 15/16=0 and 15%16=15 Collect remainders for the hex values in reverse of these steps: 15151515>0xFFFF This process is similar with decimal (base-10) and binary (base-2)

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database Systems A Practical Approach To Design Implementation And Management

Authors: THOMAS CONNOLLY

6th Edition

9353438918, 978-9353438913

More Books

Students also viewed these Databases questions