From 75adb397234b3a67699f2cda2b75b960f4d4ceb3 Mon Sep 17 00:00:00 2001 From: Hyder Date: Mon, 28 Jul 2025 20:15:39 +0300 Subject: Its a Hexadecimal to Integer converter, Tried to make it look like a professional program XD --- HTOI.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 HTOI.c (limited to 'HTOI.c') diff --git a/HTOI.c b/HTOI.c new file mode 100644 index 0000000..a565224 --- /dev/null +++ b/HTOI.c @@ -0,0 +1,38 @@ +# include + +# define HexBase 16 + +int HexadecimalToInteger(char string[]) { + + // The standalone Number *10* here in the FOR LOOP is a complementary value to make the hexadecimal function output correct values. + + int DecimalNumberTotal = 0; + + for (int i = 0;string[i] != '\0'; ++i) { + if (string[i] >= '0' && string[i] <= '9') { + DecimalNumberTotal = HexBase * DecimalNumberTotal + string[i] - '0'; + } + else if (string[i] >= 'a' && string[i] <= 'f') { + DecimalNumberTotal = HexBase * DecimalNumberTotal + (string[i] - 'a' + 10); + } + else if (string[i] >= 'A' && string[i] <= 'F') { + DecimalNumberTotal = HexBase * DecimalNumberTotal + (string[i] - 'A' + 10); + } + } + return(DecimalNumberTotal); +} + +// THE MAIN BLOCK + +int main () { + char TheHexString[1000]; + printf("Give me a Hexadecimal to convert (Without the prefix 0x)\n\n"); + + while (scanf("%s", &TheHexString) != EOF) { + + int res = HexadecimalToInteger(TheHexString); + printf("The result is : %d\n\n", res); + + } + return 0; +} \ No newline at end of file -- cgit v1.2.3