Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #define HEX 16
- long long int power(int base,int pow);
- long long int conv(int num[11],int i);
- int main(){
- int num[11],c,i=0,max=0;
- printf("Input numbers 0-9 and letters A-F\n(String length must be less or equal to 10 symbols)\n");
- while((c=getchar())!=EOF){
- if(c>='A' && c<='F'){
- num[i]=c-'A'+10;
- i++;
- }
- if(c>='a' && c<='f'){
- num[i]=c-'a'+10;
- i++;
- }
- if(c>='0' && c<='9') {
- num[i]=c-'0';
- i++;
- }
- max=i;
- }
- if(max>10) printf("Input is too long\n");
- else printf("%lli\n",conv(num,max));
- }
- long long int conv(int num[11],int i){
- int p;
- long long int s=0;
- for(p=0;p<i;p++) s=s+num[p]*power(HEX,i-p-1);
- return s;
- }
- long long int power(int base,int pow){
- long long int k=1;
- int s;
- if(pow==0) k=1;
- else for(s=1;s<=pow;s++) k*=base;
- return k;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement