- Get link
- X
- Other Apps
Featured Post
Posted by
Unknown
on
- Get link
- X
- Other Apps
A simple implementation of converter which converts hexadecimal string to an integer.
#include <stdio.h> #include <stdlib.h> #include <string.h> // To convert a-f or A-F to a decimal number int chartoint(int c) { char hex[] = "aAbBcCdDeEfF"; int i; int result = 0; for(i = 0; result == 0 && hex[i] != '\0'; i++) { if(hex[i] == c) { result = 10 + (i / 2); } } return result; } unsigned int htoi(const char s[]) { unsigned int result = 0; int i = 0; int proper = 1; int temp; //To take care of 0x and 0X added before the hex no. if(s[i] == '0') { ++i; if(s[i] == 'x' || s[i] == 'X') { ++i; } } while(proper && s[i] != '\0') { result = result * 16; if(s[i] >= '0' && s[i] <= '9') { result = result + (s[i] - '0'); } else { temp = chartoint(s[i]); if(temp == 0) { proper = 0; } else { result = result + temp; } } ++i; } //If any character is not a proper hex no. , return 0 if(!proper) { result = 0; } return result; } int main(void) { char *endp = NULL; char test[20]; printf("\nEnter a hexadecimal pattern : "); scanf("%s",test); if(htoi(test) == 0) { printf("\nEntered characters not proper Hexadecimal Number!!!\n"); exit(0); } printf("Hex : %s\tDecimal: %d\n" ,test, htoi(test)); }
Comments
Post a Comment
Please post your valuable suggestions