public class TabanCevir {
public static String reverse(String deger)
{
String sonuc = "";
for (int i = deger.length(); i >0; i--) {
sonuc += deger.substring(i-1, i);
}
return sonuc;
}
static int i=0;
static String cevrilenString="";
public static String tabanCevir(int sayi, int cevTaban)
{
if(cevTaban<2 || cevTaban>16)
{
return "Taban 2-16 arasinda olmali";
}
else if(sayi<cevTaban)
{
cevrilenString+=sayi;
return reverse(cevrilenString);
}else
{
while(true)
{
if(sayi<cevTaban)
{
cevrilenString+=sayi;
break;
}else if(sayi>cevTaban && cevTaban>10)
{
sayi = OndanBuyukTaban(sayi, cevTaban);
}else{
cevrilenString+=sayi%cevTaban;
sayi=sayi/cevTaban;
}
}
if(i==1)
{
return cevrilenString;
}
return reverse(cevrilenString);
}
}
private static int OndanBuyukTaban(int sayi, int cevTaban) {
if(sayi/cevTaban==10)
{
cevrilenString+="a";
sayi=sayi%cevTaban;
i=1;
}else if(sayi/cevTaban==11)
{
cevrilenString+="b";
sayi=sayi%cevTaban;
i=1;
}else if(sayi/cevTaban==12)
{
cevrilenString+="c";
sayi=sayi%cevTaban;
i=1;
}else if(sayi/cevTaban==13)
{
cevrilenString+="d";
sayi=sayi%cevTaban;
i=1;
}else if(sayi/cevTaban==14)
{
cevrilenString+="e";
sayi=sayi%cevTaban;
i=1;
}else if(sayi/cevTaban==15)
{
cevrilenString+="f";
sayi=sayi%cevTaban;
i=1;
}else{
sayi = OndanKucukTaban(sayi, cevTaban);
}
return sayi;
}
private static int OndanKucukTaban(int sayi, int cevTaban) {
if(sayi%cevTaban==10)
{
cevrilenString+="a";
sayi=sayi/cevTaban;
i=0;
}else if(sayi%cevTaban==11)
{
cevrilenString+="b";
sayi=sayi/cevTaban;
i=0;
}else if(sayi%cevTaban==12)
{
cevrilenString+="c";
sayi=sayi/cevTaban;
i=0;
}else if(sayi%cevTaban==13)
{
cevrilenString+="d";
sayi=sayi/cevTaban;
i=0;
}else if(sayi%cevTaban==14)
{
cevrilenString+="e";
sayi=sayi/cevTaban;
i=0;
}else if(sayi%cevTaban==15)
{
cevrilenString+="f";
sayi=sayi/cevTaban;
i=0;
}
else{
cevrilenString+=sayi%cevTaban;
sayi=sayi/cevTaban;
i=0;
}
return sayi;
}
}
Test;
public class Test {
public static void main(String[] args) {
//tabanCevir(Sayimiz, CevrilmekIstenenTaban)
//Test edilen durumlar tabanCevir(1110, 11): 91a
//tabanCevir(111, 11): a1 , tabanCevir(11, 2): 1011
//tabanCevir(500, 14): 27a, tabanCevir(700, 21): 1c7
//tabanCevir(700, 2): 1010111100 , tabanCevir(555, 3): 202120
//tabanCevir(5555, 16): 15b3
System.out.println(TabanCevir.tabanCevir(3, 2));
}
}