Advertisement
10rch

Untitled

Apr 3rd, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.94 KB | None | 0 0
  1. #include <stdio.h>
  2. #define HEX 16
  3.  
  4. long long int power(int base,int pow);
  5.  
  6. long long int conv(int num[11],int i);
  7.  
  8. int main(){
  9.   int num[11],c,i=0,max=0;
  10.     printf("Input numbers 0-9 and letters A-F\n(String length must be less or equal to 10 symbols)\n");
  11.     while((c=getchar())!=EOF){
  12.        if(c>='A' && c<='F'){
  13.         num[i]=c-'A'+10;
  14.         i++;
  15.        }
  16.        if(c>='a' && c<='f'){
  17.         num[i]=c-'a'+10;
  18.         i++;
  19.        }
  20.        if(c>='0' && c<='9') {
  21.             num[i]=c-'0';
  22.             i++;
  23.          }
  24.          max=i;  
  25.    }
  26.    if(max>10) printf("Input is too long\n");
  27.    else printf("%lli\n",conv(num,max));  
  28. }
  29.  
  30.  long long int conv(int num[11],int i){
  31.   int p;
  32.   long long int s=0;
  33.    for(p=0;p<i;p++)  s=s+num[p]*power(HEX,i-p-1);
  34.     return s;
  35. }
  36.  
  37. long long int power(int base,int pow){
  38.   long long int k=1;
  39.   int s;
  40.   if(pow==0) k=1;
  41.   else for(s=1;s<=pow;s++) k*=base;
  42.     return k;
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement