Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<string.h>
- #include<math.h>
- #include<stdlib.h>
- void alltoDecimal(int b,long long n){
- long long rem;
- int con=0;
- for(int i=0;;i++){
- rem=n%10;
- n=n/10;
- con+=rem*pow(b,i);
- if(n==0&&rem==0){
- break;
- }
- }
- printf("%d\n",con);
- }
- void hextoDecimal(char n[50]){
- long long con=0;
- int x=strlen(n);
- for(int i=0,p=x-1;i<strlen(n);i++,p--){
- if(n[i]>='0'&&n[i]<='9'){
- con+=(n[i]-48)*pow(16,p);
- }
- else if(n[i]>='A'&&n[i]<='Z'){
- con+=(n[i]-55)*pow(16,p);
- }
- }
- printf("%lld\n",con);
- }
- void decimaltoOthers(int b,long long n){
- long long rem;
- int i,j,l;
- char st1[50],st2[50]={"0"};
- char num[10]={'0','1','2','3','4','5','6','7','8','9'};
- for(i=0;;i++){
- rem=n%b;
- n=n/b;
- if(n==0&&rem==0){
- break;
- }
- for(j=0;j<10;j++){
- if(rem<10){
- if(j==rem){
- st1[i]=num[j];
- }
- }
- else{
- st1[i]=(char)(rem+55);
- break;
- }
- }
- }
- l=strlen(st1);
- for(i=0,j=l-1;i<l;i++,j--){
- st2[j]=st1[i];
- }
- puts(st2);
- }
- int main(){
- int a,y;
- char x[50];
- scanf("%d",&a);
- scanf("%s %d",x,&y);
- long long z=strtol(x,NULL,10);
- if(a==1){
- if(y==16){
- hextoDecimal(x);
- }
- else{
- alltoDecimal(y,z);
- }
- }
- if(a==2){
- decimaltoOthers(y,z);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment