Dezimal > Binär-Umrechnung Logikfehler?

zenpaticx

Mitglied
Hallo,

habe folgenden Code:
Java:
  double z1 = 27.0;
  double z2 = 2.0;
  int i = 0;
   
  boolean[] bA = new boolean[8];
   
  while (z1 >= 0) {
  z1 /= z2;
   
  if (z1 % 2.0 == 0.0) {
  bA[i] = false;
  } // end of if
   
  else {
  bA[i] = true;
  z1 -= 0.5;
  } // end of if-else
   
  i++;
  } // end of while
   
  for (int j = 0; j < 8; j++) {
  System.out.println(j + ". Stelle: " + bA[j]);
  } // end of for
Um es kurz zu demonstrieren wie man eine Dezimalzahl in Binär umrechnen kann:
27 / 2 = 13,5 => 1
13 / 2 = 6,5 => 1
6 / 2 = 3 => 0
3 / 2 = 1,5 => 1
1 / 2 = 0,5 => 1

Und dann von unten nach oben (hier blöd, weil es wie ein Palindrom ist).
Das Problem bei meinem Code ist, dass er auch bei gerade Zahlen (hier 6 & 3) nicht in die If-Anweisung springt. Ist das ein Logikfehler, oder was ist das Problem?

Falls jemand eine Idee hat, bitte nicht den Code poste, nur eine Anregung :)

Frohes Osterfest und viele Grüße
 

JStein52

Top Contributor
Also ich würde alles int oder long machen. Sodann darfst du nicht zu Beginn deiner Schleife durch 2 dividieren. Das muss ans Ende der Schleife. Und die Schleifenbedingung müsste sein while (zahl > 0). Und dieses subtrahieren von 0.5 kannst du dir natürlich auch sparen. Mit diesen Änderungen geht es dann
 

JStein52

Top Contributor
Ach so, noch was: dein Beispiel geht so:

Um es kurz zu demonstrieren wie man eine Dezimalzahl in Binär umrechnen kann:
27 % 2 = 1
27 / 2 = 13 % 2 = 1
13 / 2 = 6 % 2 = 0
6 / 2 = 3 % 2 = 1
3 / 2 = 1 % 2 = 1
 

zenpaticx

Mitglied
@JStein52 danke für die Antworten. Gut, dass es auch mit Integern funktioniert, da habe ich es mir wohl zu kompliziert gemacht :D

For future reference:
Java:
int iZahl = 27;
  int i = 0;
  boolean[] bA = new boolean[8];
  
  while (iZahl >= 0 && i < 8) {
  if (iZahl % 2 != 0) {
  bA[i] = true;
  } // end of if
  
  else {
  bA[i] = false;
  } // end of if-else
  
  iZahl /= 2;
  i++;
  } // end of while
 

JStein52

Top Contributor
Gerne aber du machst es dir immer noch ein bisschen unnötig schwer dadurch dass du dich auf max. 8-Bit Zahlen beschränkst. Schöner wäre es wenn du dein Bit-Array passend zum Datentyp deiner Eingabezahl dimensionierst. Bei dir wäre das int, könnte aber z.B. auch long sein. Und dann würde das so aussehen:

Code:
 int iZahl = 27;
  int i = 0;
  boolean[] bA = new boolean[Integer.SIZE];
  while (iZahl > 0) {
     if (iZahl % 2 != 0) {
        bA[i] = true;
     } // end of if
     else {
        bA[i] = false;
     } // end of if-else
     iZahl /= 2;
     i++;
  } // end of while
 

JStein52

Top Contributor
oder noch einfacher: du baust dir einen String bestehend aus 0 und 1 auf:

Code:
  int iZahl = 27;
  String binaerZahl = "";
  while (iZahl > 0) {
     binaerZahl = iZahl%2 + binaerZahl;
     iZahl /= 2;
  } // end of while

  System.out.println(binaerZahl);
 

zenpaticx

Mitglied
@JStein52 stimmt - dann wäre ich nicht auf 8 Bit beschränkt, nur finde ich bei der Version mit Iteger.SIZE, dass es nicht so schön aussieht, wenn 32 Zeilen mit False stehen :D

Aber die Idee mit dem String ist echt genial - vielen Dank!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Hilfe bei Umrechnung von dezimal nach binär Java Basics - Anfänger-Themen 9
M Binär zu Dezimal Java Basics - Anfänger-Themen 16
J Dezimal in Binär (Array) Java Basics - Anfänger-Themen 2
K Erste Schritte Dezimal in binär Java Basics - Anfänger-Themen 17
S Umwandlung Binär in Dezimal (ohne array etc.) Java Basics - Anfänger-Themen 6
V Binär in Dezimal Java Basics - Anfänger-Themen 4
S Umrechner (Dezimal, Hexadezimal und Binär) Java Basics - Anfänger-Themen 3
C dezimal in binär Java Basics - Anfänger-Themen 3
M Binär -> Dezimal Java Basics - Anfänger-Themen 11
N Umrechung Binär in Dezimal und Hexadezimal Java Basics - Anfänger-Themen 7
B Dezimal Binär? Java Basics - Anfänger-Themen 10
R Unicode-Wert in Binär und Dezimal umformen - kleines Problem Java Basics - Anfänger-Themen 1
Ostkreuz Methoden Von Dezimal zu Hexadezimal Methode toHex Java Basics - Anfänger-Themen 2
S Algorithmus (reelle Zahl <65536 von dezimal zu dual) max. 10 Nachkommastellen Java Basics - Anfänger-Themen 4
JD_1998 Vorgegebene Methode erweitern um Hex -> Dezimal umzuwandeln Java Basics - Anfänger-Themen 1
P Dezimal zu Hexadezimalzahl Funktion Java Basics - Anfänger-Themen 5
D Dezimal zu Dual mit Rückgabewert Java Basics - Anfänger-Themen 39
G Dezimal zu Binärcode Programm Java Basics - Anfänger-Themen 9
D Umrechnung dezimal -> oktal | signed/unsigned? Java Basics - Anfänger-Themen 1
L Dezimal- zu Binärsystem Java Basics - Anfänger-Themen 4
P 32 Bit Binärzahl Umwandeln in Dezimal Java Basics - Anfänger-Themen 8
D römische Zahlen in Dezimal ausgeben Java Basics - Anfänger-Themen 9
dave253 IEEE-Norm in Dezimal Java Basics - Anfänger-Themen 12
W Umwandeln von Dezimal in Dual - Ausgabe incl. Rechenschritte Java Basics - Anfänger-Themen 11
H Erste Schritte Uhrzeit anzeigen in Minuten Dezimal Java Basics - Anfänger-Themen 8
F Erste Schritte Dezimal in Hexadezimal Java Basics - Anfänger-Themen 5
F Erste Schritte [GUI] Dual in Dezimal rechnen Java Basics - Anfänger-Themen 5
N Compiler-Fehler Dezimal to binary Java Basics - Anfänger-Themen 2
C Dezimal- und InputVerifier/FocusListener Probleme Java Basics - Anfänger-Themen 3
E Hexadezimal in Dezimal Java Basics - Anfänger-Themen 25
G Java Dezimal Zahlen Internazialisation Problem Java Basics - Anfänger-Themen 7
M Verständnisfrage zur Zahlenumwandlung (Dezimal-->Dual) Java Basics - Anfänger-Themen 25
U Dezimal zu Hexadezimal rekursive Funktion Java Basics - Anfänger-Themen 8
F dezimal zu hexadezimal Java Basics - Anfänger-Themen 14
V Tool zum Umrechnen Dezimal in Hex Java Basics - Anfänger-Themen 7
B Dezimal --> Hex Java Basics - Anfänger-Themen 3
M String(Binärzahl) in Dezimal umwandeln Java Basics - Anfänger-Themen 4
S Dual in Dezimal umwandeln? Java Basics - Anfänger-Themen 24
G Dezimal zu Hexadezimal Java Basics - Anfänger-Themen 2
S Dezimal- in Hexadezimalzahl umwandeln Java Basics - Anfänger-Themen 4
M wie hexadezimal in dezimal wandeln? Java Basics - Anfänger-Themen 16
O Dezimal in Dual...Arraygröße & Runden Java Basics - Anfänger-Themen 4
X Dezimal/-Hexcode in lebares format umwandeln Java Basics - Anfänger-Themen 4
S dezimal od. hexadezimal Java Basics - Anfänger-Themen 3
X Wie kann man ein Regex erstellen, die 8-Bit-Binär-Zahlen darstellen. Java Basics - Anfänger-Themen 1
A Dezinal in Binär Recursiv Java Basics - Anfänger-Themen 6
W Dez-->Binär mit eigener bit Anzahl Erkennung. Java Basics - Anfänger-Themen 3
parrot Binär Addieren Java Basics - Anfänger-Themen 21
F Erste Schritte Binär zahle auf 8 stellen aufüllen Java Basics - Anfänger-Themen 2
Orkanson Long Binär darstellen Java Basics - Anfänger-Themen 1
W Dezimalzahl in Binär umwandeln - Was sollte ich an meinem Programm verbessern? Java Basics - Anfänger-Themen 5
L String in Binär umwandeln Java Basics - Anfänger-Themen 4
ubaro1 Operatoren Der Tide Operator und positive Ganzzahlen in Binär Java Basics - Anfänger-Themen 1
T Erste Schritte Nachkommstellen in Binär mit Vekotoren Java Basics - Anfänger-Themen 3
M hexadezimal in binär mit Hilfe von Shift-Operatoren Java Basics - Anfänger-Themen 6
R Dezimalzahlen zu Binär Java Basics - Anfänger-Themen 3
B datentyp in binär umwandeln Java Basics - Anfänger-Themen 5
S binär string Java Basics - Anfänger-Themen 10
N Binär suchen: Java Basics - Anfänger-Themen 4
E Methoden umrechnung binär/oktal/hexadezimal in dezimalsystem (Methode) Java Basics - Anfänger-Themen 1
A double and add algorithmus für elliptische kurven/ integer binär darstellen Java Basics - Anfänger-Themen 14
K Binär Logisch Und, logisch Oder, subtrahieren Java Basics - Anfänger-Themen 8
G Binär in Byte speichern Java Basics - Anfänger-Themen 7
eLogic .txt Testdatei to Binär Java Basics - Anfänger-Themen 2
F Hex zu Binär Java Basics - Anfänger-Themen 7
Shanks Problem bei Binär überprüfung Java Basics - Anfänger-Themen 3
S Array Daten in Binär Datei schreiben/lesen Java Basics - Anfänger-Themen 11
H Java Double in Binär, Hex oder Octalzahl wandeln Java Basics - Anfänger-Themen 3
JeromeM90 (Brauche Hilfe) Binär- in Dezimalzahlkonverter Java Basics - Anfänger-Themen 8
N Binär Datei kopieren Java Basics - Anfänger-Themen 2
T longs binär verarbeiten Java Basics - Anfänger-Themen 4
G Objekte binär speichern und später wieder einlesen? Java Basics - Anfänger-Themen 7
G char[] binär schreiben? Java Basics - Anfänger-Themen 2
V Binär + Hexadezimal Java Basics - Anfänger-Themen 3
V String mit Hexadezimalzahlen in Binär umwandeln Java Basics - Anfänger-Themen 2
A Binär-Datei versenden übers Internet Java Basics - Anfänger-Themen 2
R String nach Binär-Form Java Basics - Anfänger-Themen 3
E Umrechnung vom Zehnersystem Java Basics - Anfänger-Themen 2
K Umrechnung Koordinaten zu Winkel Java Basics - Anfänger-Themen 3
J Problem bei Umrechnung von Hex in Bin Java Basics - Anfänger-Themen 4
K Umrechnung von Zeiten Java Basics - Anfänger-Themen 3
W Fehler bei Umrechnung in Dualsystem Java Basics - Anfänger-Themen 4
T Millisekunden-Umrechnung die 100. Java Basics - Anfänger-Themen 6
E Cosinus berechnen -> Umrechnung in Bogenmaß Java Basics - Anfänger-Themen 11
G Umrechnung Zeit/Temperatur Java Basics - Anfänger-Themen 6
D Umrechnung von Einheiten Java Basics - Anfänger-Themen 7
A Verständnisfrage Sekunden/Tage Umrechnung Java Basics - Anfänger-Themen 3
L Einfache Umrechnung Java Basics - Anfänger-Themen 2
A Umrechnung von € in $ mit Variablen Java Basics - Anfänger-Themen 3
S java.lang.NullPointerException Fehler bei Umrechnung Java Basics - Anfänger-Themen 3
P Umrechnung von Basis b zu Dezimalzahl Java Basics - Anfänger-Themen 7
M Umrechnung von Grad Celsius nach Grad Fahrenheit Java Basics - Anfänger-Themen 9
N Programm zur Umrechnung von DM auf EURO mit for-Schleife Java Basics - Anfänger-Themen 3
C Umrechnung von Zahlensystemen Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben