diff options
Diffstat (limited to 'HTOI')
| -rw-r--r-- | HTOI/HTOI.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/HTOI/HTOI.c b/HTOI/HTOI.c new file mode 100644 index 0000000..a565224 --- /dev/null +++ b/HTOI/HTOI.c @@ -0,0 +1,38 @@ +# include <stdio.h> + +# 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 |
