25 Ocak 2011 Salı

Java'da Taban Çevirme Programı

Test isimli main sınıfımız:

public class Test {
	public static void main(String[] args) {
		System.out.println(TabanCevir.tabanCevir(12121, 8));
	}
}
İşlemlerin yapıldığı TabanCevir isimli sınıfımız:

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;
	}
}

0 yorum:

Yorum Gönder