int main(int argc, char *argv[]) { //char *argv[]={"conv","8","10","107"}; long long int b1=convert_dec(argv[1],10); long long int b2=convert_dec(argv[2],10); //long long int no=convert_dec(argv1[3],b1);printf("\n"); //printf("%lld\n\n%lld\n\n%lld",b1,b2,no); // check base b1 int flag=0; int size=strlen(argv[3]); int i=0; for (i=0;i<size;i++) { char cc=argv[3][i]; if (conv(cc)>=b1 || conv(cc)<0) { flag=1; break; } } if (flag==1) { printf("0"); } else // convert to other base { long long int no=convert_dec(argv[3],b1); long long int num=no; char pr[1000]; int ind=0; if (num==0) { printf("0"); } else{ while(num) // store digits in pr[] { int dig=num%b2; num=num/b2; pr[ind++]=dig; } for (ind=(ind-1);ind>=0;ind--) { int dig=pr[ind]; if(dig==10) printf("A"); else if (dig==11) printf("B"); else if (dig==12) printf("C"); else if (dig==13) printf("D"); else if (dig==14) printf("E"); else if (dig==15) printf("F"); else printf("%d",dig); } } } // close else return 0; }
/* *uart_printf(char*) *Converts and formats values to be sent via char UART. Works similar to normal printf function. *INPUT: Char* EX: uart_printf("DATA: %i\r\n", datvar); *RETURN: None */ void uart_printf(char *format, ...) { char c; int i; long l; va_list list; //Make the arguement list va_start(list, format); while(c = *format++) //run through the input till the end. { if(c == '%') //% denotes the variable format character { switch(c = *format++) { case 's': // strings uart_puts(va_arg(list, char*)); break; case 'c': // chars uart_putc(va_arg(list, char)); break; case 'i': // signed ints i = va_arg(list, int); if(i < 0) { i = -i; uart_putc('-'); } convert_dec((unsigned)i, divider + 5); break; case 'u': // unsigned ints i = va_arg(list, int); convert_dec((unsigned)i, divider + 5); break; case 'l': // signed longs l = va_arg(list, long); if(l < 0) { l = -l; uart_putc('-'); } convert_dec((unsigned long)l, divider); break; case 'n': // unsigned longs l = va_arg(list, long); convert_dec((unsigned long)l, divider); break; case 'x': // 16bit Hex i = va_arg(list, int); uart_putc(convert_hex(i >> 12)); uart_putc(convert_hex(i >> 8)); uart_putc(convert_hex(i >> 4)); uart_putc(convert_hex(i)); break; case 0: return; default: uart_putc(c); //can't find formating. just print it. } } else { uart_putc(c); } }