Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 2

#include <Arduino.

h>

void setup() {
Serial.begin(9600);
}

void loop() {
Serial.println("Enter first hexadecimal number: ");
String hexInput1 = getInput();

Serial.println("Enter second hexadecimal number: ");


String hexInput2 = getInput();

long decimal1 = hexToDec(hexInput1);


long decimal2 = hexToDec(hexInput2);

Serial.print("Decimal equivalent of ");


Serial.print(hexInput1);
Serial.print(": ");
Serial.println(decimal1);

Serial.print("Decimal equivalent of ");


Serial.print(hexInput2);
Serial.print(": ");
Serial.println(decimal2);

Serial.println("Select operation (+, -, *, /): ");


char operation = getOperation();

long result;

switch (operation) {
case '+':
result = decimal1 + decimal2;
break;
case '-':
result = decimal1 - decimal2;
break;
case '*':
result = decimal1 * decimal2;
break;
case '/':
if (decimal2 != 0) {
result = decimal1 / decimal2;
} else {
Serial.println("Error: Division by zero.");
continue; // Ask for input again
}
break;
default:
Serial.println("Invalid operation. Please enter +, -, *, or /.");
continue; // Ask for input again
}

Serial.print("Result in decimal: ");


Serial.println(result);

Serial.print("Result in hexadecimal: ");


Serial.println(decToHex(result));
delay(5000); // Delay for visibility, adjust as needed
}

String getInput() {
while (!Serial.available()) {
// Wait for input
}

String input = Serial.readStringUntil('\n');


input.trim();
return input;
}

char getOperation() {
while (!Serial.available()) {
// Wait for input
}

return Serial.read();
}

long hexToDec(String hexString) {


return strtol(hexString.c_str(), NULL, 16);
}

String decToHex(long decimal) {


char hexString[9];
snprintf(hexString, sizeof(hexString), "%lX", decimal);
return String(hexString);
}

You might also like