JavaCode: Dezimal nach Binär umwandeln

Status
Für weitere Antworten geschlossen.

Mr.sniffer

Cadet 1st Year
Registriert
Jan. 2006
Beiträge
12
Hallo, hat jemand einen Source für Java, wo man Dezimalzahlen in Binärzahlen umwandeln kann?

Ihr würdet mir echt helfen.
Danke für antworten.
 
wenn du wenigstens einen programm-ansatz für dein problem liefern würdest, wäre ich bereit zu helfen. aber ich werde mit sicherheit nicht deine hausaufgaben lösen.
ein tipp der code steht für c und c++ hier im forum. dürfte für java eine nette inspiration seien.
 
Das problem ist, dass ich nicht weiß, wie ich da überhaupt anfangen soll.
Ich weiß nicht was ich machen soll.
 
so kurz und knapp:

System.out.println(Integer.toBinaryString(23));

Java kann sowas auch allein ;-)
 
Hi sry wenn ich mich einmische. Hierzu auch eine Frage.

Es ist schon wunderbar, dass java dieses Problem selber lösen kann. Ich habe aber die Aufgabe mich mit rekursion zu beschäftigen. Habe zuerst einen Algorithmus geschrieben und ihn auch in java "implementiert".

Problem: peinlicher weise bekomm ich es nicht auf die Reihe die Strings so aufzuaddieren dass die binäre Zahl als String ausgegeben wird. Möglicherweise liegt der Fehler auch anderswo. Hoffe ihr könnt mir helfen.

Wäre sehr Dankbar! :p

Hier mein Code:

public class Binär_1 {
public static String bin(int x,String ergebnis){

if(x==0){
return ergebnis;
}else{
if(x%2==1){
bin(x/2,ergebnis= "1" + ergebnis); //Fehler:(..."1"+ergebnis)?
}else
{bin(x/2,ergebnis="0" + ergebnis);}//Hier auch?

}
return ergebnis;

}



public static void main(String[] args) {

int x=3
;

System.out.println("Die Zahl "+x+ " binär, dargestellt:" +bin(x,"") );
}

}
 
Ergänzung ()

TheDonar schrieb:
so kurz und knapp:

System.out.println(Integer.toBinaryString(23));

Java kann sowas auch allein ;-)

nice danke :)

Zusatz:

ist zwar alt aber hier eine Lösung für das Problem ohne Javas Hilfe :D

/**
* Methode, die eine Dezimalzahl in Binär umwandelt
* @param args
*/
public static void main(String[] args) {
int n = Integer.parseInt(args[0]);
String dual = " ";
while (n > 0){
dual = n % 2 + dual;
n = n / 2;
}
System.out.println(dual);
}
 
Zuletzt bearbeitet:
@plusnoir: Propier's mal so:
return bin(x/2, "1" + ergebnis);
 
also als progarmmierer sollte man das aber auch selber umrechnen können!

Meie frage: sind das bei Java vorzeichenbehaftete darstellungen der zahlen oder nicht?
 
Afaik sind in Java alle Zahlen-Datentypen vorzeichenbehaftet.
 
Irgendwie verwirrt mich die Fragestellung schon. Was meinst du denn mit "umwandeln"? Das geht nicht, Zahlen werden (zumindest auf x86-Systemen) immer in Binärdarstellung im Speicher gehalten. Man kann sie lediglich für die Ausgabe in verschiedenen Formaten in einem String darstellen (hier ist jede Basis für polyadische Zahlensysteme denkbar). Für die Basis 2 (Binärdarstellung) hat TheDonar die Lösung bereits geliefert.

Mercsen schrieb:
Meie frage: sind das bei Java vorzeichenbehaftete darstellungen der zahlen oder nicht?
Darlis schrieb:
Afaik sind in Java alle Zahlen-Datentypen vorzeichenbehaftet.

Ja, Java kennt nur vorzeichenbehaftete Zahlen (im gegensatz zu bsw. C), sie werden für bei ganzzahligen Datentypen stets im Zweierkomplement abgelegt.
 
hahahahahaha das is mir gar nicht aufgefallen, auf einmal wars ganz oben :p
 
naja Raptik hatte nochmal gepostet ....

allemal besser als ein neues Thema aufzumachen :D
 
hehe sorry für die Verwirrung :D
ich war nämlich auf der Suche des selben Problems deswegen^^
 
fiae2010 o.o einfach mal nen Acc erstellt um sinnlos zu posten ?
-.-

BTW:

wenn ich son problem hätte würd ich erstmal GOOGELN wie man denn überhaupt decimal in binärzahlen umrechnet und umgekehrt -.-
sowas sollte man zumindest als pseudocode auch ohne ahnung von programieren hinschreiben können
 
Hallo,
wäre echt cool wenn mir jemand helfen könnte.
Möchte gerne ein Programm schreiben, dass Binär- in Dezimalzahlen umrechnet und umgekehrt. Es steht eig. alles, das Problem ist nur, dass das Falsche Ergebnis rauskommt.
Bin schon am verzweifeln.

Ach ja un dich steh noch ganz am Anfang von Java, also bitte nicht über meinen Stil meckern ja?
Wäre cool :D

Vieleb vielen Dank im Vorraus.

public class Binear{
public static void main (String [] args) {
int binaer = 11111;
int zehner = 0;
int ergebnis = 0;
int i = 0;
if (zehner == 0) {
int speicher = 1;
int binaerzwei = binaer;
while (binaerzwei >= 1) {
binaerzwei = binaerzwei / 10;
i++; }
while (i > 1) {
i = i - 1;
speicher = speicher * 2;
}
while (speicher >= 1) {
ergebnis = speicher * binaer % 10 + ergebnis;
speicher = speicher / 2;

}
System.out.println (ergebnis);
}
else {
for (int speicher = 0; zehner > 0; zehner = zehner / 2) {
ergebnis = 0;
ergebnis = zehner % 2;
System.out.print (ergebnis);
}

}
}
}
 
Zuletzt bearbeitet:
*Mecker* Code-Tags benutzen *Mecker*


Das sieht irgendwie total kompliziert aus, was du da gebastelt hast.

In der ersten While zählst du die Anzahl der Ziffern der binären Zahl.
In der zweiten While nimmst du die Anzahl der Ziffern als 2^Exponent. Wozu das gut sein soll, erschließt sich mir nicht.
Was in der dritten While passiert, kann ich nicht richtig deuten. Aus meiner Sicht rechnet er da wild in der Gegend herum.


Warum nimmst du nicht den bekannten Standardalgorithmus für die Umrechnung von Binär in Dezimal?
Also einfach die binäre Zahl als Ansammlung von Exponenten zur Basis 2 sehen.
11111 = 2^4 + 2^3 + 2^2 + 2^1 + 2^0
10101 = 2^4 + 0^3 + 2^2 + 0^1 + 2^0

Wenn man das so betrachtet, dann gehst du einfach per Schleife die binäre Zahl durch, schaust, ob an der Stelle eine 0 oder 1 steht und wenn da eine 1 ist, dann rechnest du 2^(Zifferposition von rechts - 1). Und nun nur noch die ganzen Ergebnisse der Potenzrechnungen addieren, fertig. ;)
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
Zurück
Oben