Question

In: Computer Science

Computer Architecture and Organization(c++) Write a C++ program that prompts the user to enter a hexadecimal...

Computer Architecture and Organization(c++)

Write a C++ program that prompts the user to enter a hexadecimal value, multiplies it by ten, then displays the result in hexadecimal. Your main function should

a) declare a char array

b) call the readLn function to read from the keyboard,

c) call a function to convert the input text string to an int,

d) multiply the int by ten,

e) call a function to convert the int to its corresponding hexadecimal text string,

f) call writeStr to display the resulting hexadecimal text string.

the hint i was given was:

#include <iostream>

#include <cstring>

using namespace std;

char decToHex(int dec)

{

char hex;

switch (dec)

{

case 0: hex = '0';

break;

case 1: hex = '1';

break;

case 2: hex = '2';

break;

case 3: hex = '3';

break;

case 4: hex = '4';

break;

case 5: hex = '5';

break;

//

//

case 10: hex = 'A';

break;

case 11: hex = 'B';

break;

//

//

case 15: hex = 'F';

}

return hex;

}

void reverseArray(char arr[])

{

int j = strlen(arr) - 1;

int i = 0;

while ( i < j )

{

char temp = arr[i];

arr[i] = arr[j];

arr[j] = temp;

i++;

j--;

}

}

void intToHex(int intVal, char hexArr[])

{

int remainder;

int i = 0;

while (intVal > 0)

{

remainder = intVal % 16;

hexArr[i] = decToHex(remainder);

intVal = intVal / 16;

i++;

}

reverseArray(hexArr);

}

int hexToDec(char hex)

{

int dec;

switch (hex)

{

case '0': dec = 0;

break;

case '1': dec = 1;

break;

case '2': dec = 2;

break;

case '3': dec = 3;

break;

case '4': dec = 4;

break;

case '5': dec = 5;

break;

//

//

case 'A':

case 'a': dec = 10;

break;

case 'B':

case 'b': dec = 11;

break;

//

//

case 'F':

case 'f': dec = 15;

}

return dec;

}

int main()

{

char hexaInput[17];

char hexaResult[17] = { '\0' };

cout << "Enter hexadecimal: ";

cin >> hexaInput;

cout << "You typed: " << hexaInput << "\n";

int count = strlen(hexaInput);

double powerVal = 0.0;

int decValue = 0;

for (int i = count - 1; i >= 0 ; i--)

{

cout << hexToDec(hexaInput[i]) << "\n";

decValue += hexToDec(hexaInput[i]) * pow(16, powerVal);

powerVal++;

}

cout << "Decimal value is " << decValue << "\n";

intToHex(decValue*10, hexaResult);

cout << "For decimal " << decValue*10 << " Hexadecimal is: " << hexaResult <<

endl;

return 0;

}

Solutions

Expert Solution

#include <iostream>
#include<cmath>
#include <cstring>
#include<ctype.h>

using namespace std;

void reverseArray(char *hexArr,int start,int end)
{
   while (start < end)
{
char temp = hexArr[start];
hexArr[start] = hexArr[end];
hexArr[end] = temp;
start++;
end--;
}
}

void decToHex(int intVal, char hexArr[])

{

   int remainder;
   int i = 0;
   while (intVal != 0)
{
remainder = intVal % 16;
if (remainder < 10)
hexArr[i++] = remainder + 48; // numbers in hex
else
hexArr[i++] = remainder + 55; // 10 +55 = 65 = A
intVal = intVal / 16;
   }
  
reverseArray(hexArr,0,i-1);

}

int hexToDec(char hex)

{

   char ch = toupper(hex);
   if (ch >= 'A' && ch <= 'F')
       return 10 + ch - 'A';
   else
       return ch - '0';

}


int main()

{

char hexaInput[17];

char hexaResult[17] = { '\0' };

cout << "Enter hexadecimal: ";

cin >> hexaInput;

cout << "You typed: " << hexaInput << "\n";

int count = strlen(hexaInput);

int powerVal = 0;

int decValue = 0;

for (int i = count - 1; i >= 0 ; i--)

{   
   decValue += hexToDec(hexaInput[i]) * pow(16, powerVal);
  
   powerVal++;

}

cout << "Decimal value is " << decValue << "\n";

decToHex(decValue*10, hexaResult);

cout << "For decimal " << decValue*10 << " Hexadecimal is: " << hexaResult << endl;

return 0;

}

/* OUTPUT */


Related Solutions

IN C++ Write a program that prompts the user to enter the number of students and...
IN C++ Write a program that prompts the user to enter the number of students and each student’s name and score, and finally displays the student with the highest score (display the student’s name and score). Also calculate the average score and indicate by how much the highest score differs from the average. Use a while loop. Sample Output Please enter the number of students: 4 Enter the student name: Ben Simmons Enter the score: 70 Enter the student name:...
Write a program in c++ using only if statements that prompts the user to enter an...
Write a program in c++ using only if statements that prompts the user to enter an integer for today’s day of the week (Sunday is 0, Monday is 1 …., and Saturday is 6) then displays today. Also, prompt the user to enter the number of days after today for a future day and display the future day of the week. The future day can be computed as follows: (today + number of days after today) % 7 Sample run...
Include<stdio.h> In C program Write a program that prompts the user to enter an integer value....
Include<stdio.h> In C program Write a program that prompts the user to enter an integer value. The program should then output a message saying whether the number is positive, negative, or zero.
write a c++ program that prompts a user to enter 10 numbers. this program should read...
write a c++ program that prompts a user to enter 10 numbers. this program should read the numbers into an array and find the smallest number in the list, the largest numbers in the list the sum of the two numbers and the average of the 10 numbers PS use file I/o and input error checking methods
( USE C++ ) The program prompts the user to enter a word. The program then...
( USE C++ ) The program prompts the user to enter a word. The program then prints out the word with letters in backward order. For example, if the user enter "hello" then the program would print "olleh" show that it works .
Write a C++ program which prompts the user to enter an integer value, stores it into...
Write a C++ program which prompts the user to enter an integer value, stores it into a variable called ‘num’, evaluates the following expressions and displays results on screen. num+5, num-3, (num+3) – 2, ((num+5)*2 / (num+3)) For performing addition and subtraction, you are allowed to use ONLY the increment and decrement operators (both prefixing and postfixing are allowed). You must remember that using increment/decrement operators changes the original value of a number. Indent your code and include comments for...
C programming. Write a program that prompts the user to enter a 6x6 array with 0...
C programming. Write a program that prompts the user to enter a 6x6 array with 0 and 1, displays the matrix, and checks if every row and every column have the even number of 1’s.
Write a C++ console program that prompts a user to enter information for the college courses...
Write a C++ console program that prompts a user to enter information for the college courses you have completed, planned, or are in progress, and outputs it to a nicely-formatted table. Name the CPP as you wish (only use characters, underscores and number in your file name. DO NOT use blank). Its output should look something like this: Course Year Units Grade ---------- ---- ----- ----- comsc-110 2015 4 A comsc-165 2016 4 ? comsc-200 2016 4 ? comsc-155h 2014...
C++ Write a program that prompts the user to enter 50 integers and stores them in...
C++ Write a program that prompts the user to enter 50 integers and stores them in an array. The program then determines and outputs which numbers in the array are sum of two other array elements. If an array element is the sum of two other array elements, then for this array element, the program should output all such pairs separated by a ';'. An example of the program is shown below: list[0] = 15 is the sum of: ----------------------...
Write a C# program that prompts the user to enter in three values. The first indicates...
Write a C# program that prompts the user to enter in three values. The first indicates a starting (whole number positive) value, the second an ending value and the third an increase value. output a table of squares and square roots, every increase value from the start to the end value. For instance if the values were: start 3, end 20, and increase 4. the table would consist of 3,7,11,15,19 and their squares and square roots. Please include all code...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT