binär in Dezimal umrechnen :|

Tsa

Mitglied
Hey Leute,
wollte ne Methode schreiben die Binär in Dezimal umrechnet.
Ich hatte mir das ganze so überlegt:
Ich lese die Binärzahl als String ein, konvertiere in einen Chararray und zähle die länge des Arrays.
Danach lass ich von hinten also bei array.length angefangen immer -1 zurückzählen, gugg ob die zahl == 1 ist und wenn ja wird Math.pow(2, exponent); ausgeführt
danach wird der exponent um 1 erhöht und array.length (natürlich in ner variable) um 1 gesenkt!
Dabei kam ich auf folgenden Code:
Code:
public class Hexandbin
{
	public static double BinTOHex(String dualzahl)
	{
		char[] binstellen = dualzahl.toCharArray();
		double exponent= 0;
		int dezsum=0;
		int i =  binstellen.length-1; //-1, weil ein array von 0-x geht und der ja alle stellen                    //ausliest
		System.out.println(i);
		while (i>-1)
		{	
			if(binstellen[i]==1)
			{
				dezsum = dezsum + (int)Math.pow(2,exponent);
			}
			
			exponent=exponent+1;
			i = i-1;
		}
		
		return dezsum;
	}
}

Nur wenn ich jezz versuche b'10 (also d' 2) umzurechnen sagt er mir immer das wäre 0 :|

Hat jemand ne Idee, stehe wohl total aufm Schlauch!
 
Moin,

Code:
package de.otonband;

public class Bin2Hex {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String binaerZahl = "1010101011001101";
		int dezimalZahl = Integer.parseInt(binaerZahl,2);
		String hexZahl = Integer.toHexString(dezimalZahl);
		
		System.out.println("Binär: " + binaerZahl);
		System.out.println("Dezimal: " + dezimalZahl);
		System.out.println("Hexadezimal: " + hexZahl);
	}

}

Und hier nochmal von Hand .. Ähm aber nur bis dezimal .. Geht bestimmt auch noch viel besser.

Code:
	       String dualzahl = "10101";
		
		char[] binstellen = dualzahl.toCharArray();
		
		int basis = 0;
		
		int dezsum=0;
		
		for (int j = binstellen.length-1; j >= 0; j--) {
				
			if (Integer.parseInt(String.copyValueOf(binstellen,j,1))==1) basis = 2;
			else basis = 0;
					
			dezsum = dezsum + (int)Math.pow(basis, binstellen.length-1-j);
			
		}
				
		System.out.println(dezsum);

Gruß teppi
 
Zuletzt bearbeitet:
Hey,
Vielen Dank :)
Aber die von Hand Methode war das eigentlich gewollte *g* Man muss sich ja bewusst werden wie man sowas verwirklichen kann. Brauch sowas einfach :D

Deinen Code versteh ich noch nicht so ganz, aber ich werde mich mal durchackern und ggf nochmal fragen :)
Danke nochmals!
mfg,
Jens
 

Neue Beiträge

Zurück