JavaCode: Dezimal nach Binär umwandeln

Status
Es sind keine weiteren Antworten möglich.

Mr.sniffer

Cadet 1st Year
Dabei seit
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.
 

ghorst

Lieutenant
Dabei seit
Mai 2005
Beiträge
643
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.
 

Mr.sniffer

Cadet 1st Year
Ersteller dieses Themas
Dabei seit
Jan. 2006
Beiträge
12
Das problem ist, dass ich nicht weiß, wie ich da überhaupt anfangen soll.
Ich weiß nicht was ich machen soll.
 

TheDonar

Newbie
Dabei seit
Dez. 2005
Beiträge
2
so kurz und knapp:

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

Java kann sowas auch allein ;-)
 

plusnoir

Cadet 3rd Year
Dabei seit
Apr. 2009
Beiträge
36
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,"") );
}

}
 

Raptik

Ensign
Dabei seit
Okt. 2010
Beiträge
208
Ergänzung ()

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:

Darlis

Commodore
Dabei seit
Jan. 2011
Beiträge
4.269
@plusnoir: Propier's mal so:
return bin(x/2, "1" + ergebnis);
 

mercsen

Lt. Commander
Dabei seit
Apr. 2010
Beiträge
1.586
also als progarmmierer sollte man das aber auch selber umrechnen können!

Meie frage: sind das bei Java vorzeichenbehaftete darstellungen der zahlen oder nicht?
 

Darlis

Commodore
Dabei seit
Jan. 2011
Beiträge
4.269
Afaik sind in Java alle Zahlen-Datentypen vorzeichenbehaftet.
 

Kagee

Lt. Junior Grade
Dabei seit
Feb. 2005
Beiträge
405
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.

Meie frage: sind das bei Java vorzeichenbehaftete darstellungen der zahlen oder nicht?
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.
 

mercsen

Lt. Commander
Dabei seit
Apr. 2010
Beiträge
1.586
hahahahahaha das is mir gar nicht aufgefallen, auf einmal wars ganz oben :p
 

Kagee

Lt. Junior Grade
Dabei seit
Feb. 2005
Beiträge
405
naja Raptik hatte nochmal gepostet ....

allemal besser als ein neues Thema aufzumachen :D
 

Raptik

Ensign
Dabei seit
Okt. 2010
Beiträge
208
hehe sorry für die Verwirrung :D
ich war nämlich auf der Suche des selben Problems deswegen^^
 

Xetoxyc

Lieutenant
Dabei seit
Nov. 2010
Beiträge
872
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
 

DTHDdorf

Newbie
Dabei seit
Nov. 2011
Beiträge
2
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:

e-Laurin

Fleet Admiral
Dabei seit
Juni 2005
Beiträge
10.497
*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
Es sind keine weiteren Antworten möglich.
Top