diff options
author | Michael Hunteman <michael@huntm.net> | 2023-07-04 17:03:53 -0500 |
---|---|---|
committer | Michael Hunteman <michael@huntm.net> | 2023-07-06 17:23:45 -0500 |
commit | bfce8f0d0d828209ec0bec71371ee94a7ad62d3e (patch) | |
tree | bdf49ca788ca1ca030d5b1cccfd0c9dffeb3f69f /two/conv.c |
Initial commit
Diffstat (limited to 'two/conv.c')
-rw-r--r-- | two/conv.c | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/two/conv.c b/two/conv.c new file mode 100644 index 0000000..7bf218a --- /dev/null +++ b/two/conv.c @@ -0,0 +1,49 @@ +#include <stdio.h> + +int +lower(int c) +{ + if (c >= 'A' && c <= 'Z') { + return c + 'a' - 'A'; + } else { + return c; + } +} + +int +atoi(char s[]) +{ + int i, n; + + n = 0; + for (i = 0; s[i] >= '0' && s[i] <= '9'; ++i) { + n = 10 * n + (s[i] - '0'); + } + return n; +} + +/* convert string of hex digits into int digits */ +int +htoi(char s[]) +{ + int i, n; + + n = 0; + for (i = 0; s[i] >= '0' && s[i] <= 'f'; ++i) { + if (s[i] >= '0' && s[i] <= '9') { + n = 16 * n + (s[i] - '0'); + } else if (s[i] >= 'A' && s[i] <= 'F') { + n = 16 * n + (s[i] - 'A' + 10); + } else if (s[i] >= 'a' && s[i] <= 'f') { + n = 16 * n + (s[i] - 'a' + 10); + } + } + return n; +} + +int +main() +{ + printf("%d\n", htoi("1f")); + return 0; +} |