Soru & Cevap

taban döüşümü ...

12.11.2015 - 11:27

javada taban dönüşümü nasıl yapılıyor.kod kımı elınde oan varmı 

girilen bır sayıyı 16 lık tabana veya 10luk yavana veya 8 veya 2 lık tabana nasıl cevirebılırız 

2 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-11052-1576825910.jpg
alikarakoc
12.11.2015 - 11:51
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));
	}
}

 

Ercan
14.11.2015 - 01:59
eyvallah ama bunu sınavda nasıl yapacam 2 sayfalık sınav kagıdında 8 tane soru var bır tane soruya boyle cevap yazarsam dıyer sorulara nasıl cevap verecem onemlı olan kod un kıs ve öz ve okunaklı olması uzun kod yazmak onemlı deyıl onemlı olan kodun anlaşılırlıgıdır yınede tesekkurler