Created
August 3, 2024 21:53
-
-
Save giorgi568/2bb6092cf53a00b200f5d7e048efbb11 to your computer and use it in GitHub Desktop.
Revisions
-
giorgi568 created this gist
Aug 3, 2024 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,55 @@ #include <stdio.h> #include <ctype.h> int expo(int x, int y); int atoi(char c); int htoi(char s[]); void main() { printf("%d\n", htoi("62Fa")); } int expo(int x, int y){ int res; int i; if(y > 0) { res = x; for(i = 1; i < y; ++i){ res = res * x; } } else if(y == 0){ res = 1; } return res; } int atoi(char c){ return c - '0'; } int htoi(char s[]) { int tail = 0; int head = 0; int res = 0; while(s[tail] != '\0'){ ++tail; } while(tail > 0) { if(isdigit(s[head])){ res = res + (atoi(s[head]) * expo(16, tail-1)); }else if(s[head] >= 65 && s[head] <= 70){ res = res + ((s[head] - 55) * expo(16, tail-1)); }else if(s[head] >= 97 && s[head] <= 102){ res = res + ((s[head] - 87) * expo(16, tail-1)); } --tail; ++head; } return res; }