Also hab hier mal ein ein kleines Java Problem.
Soll Praktisch mit Java eine Funktion schreiben, welche Binärzahlen in Dezimal umwandelt.
Scheiss Java macht mir das aber nich leicht.
Hier mal der Code
Code:
public static int dualNachDezimal(String dualzahl)
{
int dec = 0;
for(int i = 0; i < dualzahl.length(); i++)
{
dec = dec + (dualzahl.charAt(i) * (int)Math.pow(2,i));
}
return dec;
}
an sich eigentlich sollte das doch funzen oder, das automatisch der ansi-code statt des zeichens "0" (4cool oder "1" (49) genommen wird.
So ist zb. die binärzahl 0 die dez. zahl 48 was natürlicher schwachsinn ist.
public static int dualNachDezimal(String dualzahl)
{
int dec = 0;
for(int i = 0; i < dualzahl.length(); i++)
{
dec = dec + (Integer.parseInt(dualzahl.charAt(i)) * (int)Math.pow(2,i));
}
return dec;
}
Dann schau dir bitte mal deine Methode an und dann den Code von Illuvatar. Den ganzen Kram in der for Schleife brauchst du nicht, einfach nur die eine Zeile von oben - das wars.
Dann schau dir bitte mal deine Methode an und dann den Code von Illuvatar. Den ganzen Kram in der for Schleife brauchst du nicht, einfach nur die eine Zeile von oben - das wars.
er muss aber jede einzelne ziffer haben da er die immer mit einer anderen zahl multipliziert wenn er die ganze zahl hat dann hilft im das nicht er braucht die einzelnen ziffern.
meine idee wäre char->String->int
Dann schau dir bitte mal deine Methode an und dann den Code von Illuvatar. Den ganzen Kram in der for Schleife brauchst du nicht, einfach nur die eine Zeile von oben - das wars.
er muss aber jede einzelne ziffer haben da er die immer mit einer anderen zahl multipliziert wenn er die ganze zahl hat dann hilft im das nicht er braucht die einzelnen ziffern.
meine idee wäre char->String->int
die aufgabestellung war aber solch eine methode zu schreiben die das so macht und nicht mittels einer fertigen funktion
wie kann ich denn char in einen string umwandeln? Das casten mit (String) davor klappt ja so einfach net?!!
ja aber zahlen sind mehr als nur 1 und 0 das sind nur binärZIFFERN. b-zahlen konnen auch größer werden zb 3 = 10 oder 4 = 11 ; 5 = 100 usw, ab 3 klappt das mit dem -48 nich mehr! probierts aus!
das kann doch net wahr sein das Java so beschränkt is und das net beherrscht. Das nennt sich Hochsprache, sorry muss mal bissl Luft raus lassen, weil das probier jetzt schon die ganze Zeit!
Ich könnte vllt einen algo schreiben um die ascii werte abhänig von der zahlengröße wieder rauszurechnen, aber das kann doch net die Lösung sein.
ja aber zahlen sind mehr als nur 1 und 0 das sind nur binärZIFFERN. b-zahlen konnen auch größer werden zb 3 = 10 oder 4 = 11 ; 5 = 100 usw, ab 3 klappt das mit dem -48 nich mehr! probierts aus!
das kann doch net wahr sein das Java so beschränkt is und das net beherrscht. Das nennt sich Hochsprache, sorry muss mal bissl Luft raus lassen, weil das probier jetzt schon die ganze Zeit!
ab der Binärzahl 3 kommen kommen mit -48 negative werte raus, was wenn man mal im kopf nachrechnet auch ganz logisch ist!
ich habe jetzt verscuht mit einer if schleife davor einfach zu überprüfen ob das zeichen eine 1 ist, was mir auch nicht gelingt das casten (string und char) ist nicht möglich? wie muss ich denn die EINS als zeichen eingeben?
Code:
public static int dualNachDezimal(String dualzahl)
{
int dec = 0;
for(int i = 0; i < dualzahl.length(); i++)
{
if(dualzahl.charAt(i) == "1") //casten net möglich
{
dec = dec + (int)Math.pow(2,i);
}
}
return dec;
}
:roll:
Können wir das nächstes mal bitte abkürzen indem du's einfach mal ausprobierst?
Auserdem hat das überhauptnichts mit der Sprache zu tun, in anderen Sprachen funktioniert das genauso...