Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- int htoi(char const *s)
- {
- int len;
- int i;
- int n;
- int iter = 0;
- int ret = 0;
- len = strlen(s);
- do {
- if ((*s == '0' && *(s+1) == 'x') ||
- (*s == '0' && *(s+1) == 'X')) {
- /* Skip the 0x or 0X */
- s++;
- len -= 2;
- continue;
- }
- switch (*s) {
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- n = *s - 0x30;
- break;
- case 'a':
- case 'b':
- case 'c':
- case 'd':
- case 'e':
- case 'f':
- n = *s - 0x57;
- break;
- case 'A':
- case 'B':
- case 'C':
- case 'D':
- case 'E':
- case 'F':
- n = *s - 0x37;
- break;
- default:
- break;
- }
- for (i = len; i > iter; i--) {
- n = n * 16;
- }
- ret += n;
- } while (iter++, *++s);
- return ret;
- }
- int main(int argc, char const* argv[])
- {
- int x;
- if (argc < 2) {
- printf("usage: htoi [0xffff]\n");
- exit(-1);
- }
- x = htoi(argv[1]);
- printf("%#x\n", x);
- return 0;
- }
Add Comment
Please, Sign In to add comment