From 552bc70b77d4fca54929b46190128721b93d887c Mon Sep 17 00:00:00 2001 From: Adam Carpenter Date: Tue, 23 Jul 2019 12:09:24 -0400 Subject: Cleaned up directory. --- ch2/2-03.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 ch2/2-03.c (limited to 'ch2/2-03.c') diff --git a/ch2/2-03.c b/ch2/2-03.c new file mode 100644 index 0000000..54ce89f --- /dev/null +++ b/ch2/2-03.c @@ -0,0 +1,42 @@ +#include + + +unsigned int htoi(char hex[]) { + char c; + int i; + int length; + int power; + unsigned int result; + + for (length = 0; hex[length] != '\0'; ++length) + + power = 1; + result = 0; + + for (i = length - 1; i >= 0; --i) { + c = hex[i]; + printf("%c\n", c); + + if (c >= 'a' && c <= 'f') + c = c - 'a' + 10; + else if (c >= 'A' && c <= 'F') + c = c - 'A' + 10; + else if (c >= '0' && c <= '9') + c = c - '0'; + else if (c == 'x' || c == 'X') + break; + else + return 0; + + result += c * power; + power *= 16; + } + + return result; +} + + +int main() { + char hex[] = "0x589"; + printf("%d\n", htoi(hex)); +} -- cgit v1.2.3