Binärzahlen

Status
Nicht offen für weitere Antworten.

wane4ka

Mitglied
Hallo
ich steh gerade auf dem Schlauch!

versuche ein kleines Programm zu schreiben,die dezimale Zahlen in duale umrechnet!
dabei gehe ich genau wie bei schriftlichen Umrechnung vor und zwar die Zahl durch zwei teilen,dann schauen ob es ein Rest hat,wenn ja dann eine 1 Schreiben wenn nicht dann eine 0.
und so schaut mein code aus

public class Binaerzahl {
public static void main(String []args){

double zahl=3;
double bzahl;

while(zahl>0){
if(zahl==0){
break;
}

bzahl=zahl%2;
if (bzahl==1){
zahl=(zahl/2)-0.5;
System.out.println(1);
}
else
zahl=zahl/2;
System.out.println(0);
}
}

}

Das berechnet aber was anderes und ich kann nicht Verstehen wieso!:(
Bin ich überhaupt auf dem richtigen Weg?

Wäre dankbar wenn mir jemand Helfen könnte
 

Wildcard

Top Contributor
Code:
		//kompliziert
		int number = 17;
		int radix=2;
		StringBuffer buffer =  new StringBuffer();
		while(number>0)
		{
			buffer.append(number%radix);
			number/=radix;
		}
		System.out.println(buffer.reverse());
		
		//einfach
		int number2 = 17;
		System.out.println(Integer.toBinaryString(number2));
 

wane4ka

Mitglied
Hey Danke!

Ist viel einfacher als ich gedacht habe!
gleich die nächste Frage.Gibt es in java vordefinierte Methoden,womit man Z.B AND,OR oder schift operationen für die binäre Zahlen machen kann? So ähnliches wie es die Assembler haben!
 

PyroPi

Aktives Mitglied
Hi,

du kannst diese Operationen schon vorher auf die Zahlen anwenden und dann in eine Binärzahl umwandeln.
Code:
    int x, y, z;
    
    z = x & y;   // AND
    z = x | y;   // OR
    z = x ^ y;   // XOR
    z = x << 3;  // Links-Shift
    z = x >> 3;  // Rechts-Shift
    z = ~x;      // Komplement

Viele Grüße,

PyroPi
 

SnooP

Top Contributor
äh... 1er? ... - Negation wäre die richtigere Bezeichnung dafür imho. Sprich jede binäre Stelle einer Zahl wird negiert: 1010 --> 0101
 

byte

Top Contributor
wane4ka hat gesagt.:
Ist damit eigentlich 1er oder 2 er komplement gemeint?

Intern befinden sich die Zahlen im 2er Komplement. Sie werden bloß als Dezimalzahlen dargestellt, wenn man sie ausgibt. ~ ist das 1er Komplement, also die bitweise Negation, wie hier schon gesagt wurde.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben