Binaräres Format in Dezimalformat umwandeln u. dabei die Zwischenschritte ausgeben

byron1778

Aktives Mitglied
Hallo Forum!

Ich habe ein etwas ungewöhnliches anliegen!
Ich muss ein binäres Format in eine Dezimalzahl umwandeln, dabei brauche ich aber nicht das Endergebnis, sondern die 1ser, die gesetzt sind und die damit erhaltenen Zwischenschritte.

Was ich damit genau meines als Bsp:

Die Zahl 9 = 1001

Nun muss ich wissen, dass sich die Zahl 9 aus den einzelnen Zahlen 2^3 und 2^0 zusammensetzt, ergibt also die Dezimalzahl 8 und 1.
Was ich also letzten Endes benötige sind die Zahlen 8 und 1!

Einen Java Code hierzu habe ich bereits angefangen und ich weiss auch, wie ich mir das ganze zusammenbauen könnte, jedoch ist es extrem umständlich und ich wollte fragen, ob es eine einfachere Methode dafür vll. gibt?

Hier mal mein angefangener Code:

Java:
        Integer IntgreaterZero = new Integer(9);
        String binaryString = Integer.toBinaryString(IntgreaterZero);
        int length = binaryString.length();
        System.out.println("Laenge: " + length);
        StringBuffer buff = new StringBuffer(binaryString);
        String PositionOfOnes = buff.toString();
        ArrayList<Integer> myList = new ArrayList<Integer>();
        for (int i = -1; (i = PositionOfOnes.indexOf("1", i + 1)) != -1; ) {
            myList.add(i);
            System.out.println("1: " + i);
        }
        for ( Object x : myList )
            System.out.println("bitError: " + x);

Über die Länge des gesamten Strings kann ich mal erfahren, wieviele Binärstellen es geben wird u. ich weiss auch, wo die 1ser gesetzt sind, jedoch halte ich das Ganze ein wenig für zu kompliziert programmiert, vll. kann mir jemand eine kürzere Variante zeigen?

Ich danke Euch vielmals!

lG
 
Zuletzt bearbeitet von einem Moderator:
N

nillehammer

Gast
Ja, die Umwandlung in String ist nicht nötig. Arbeite lieber mit Bit-Masken. Nachfolgender Java Code als Denkansoß:
Java:
  public static void main(String[] args) throws Exception {

    int value = 9;
    
    // Binary String zur Kontrolle ausgeben
    System.out.println(Integer.toBinaryString(value));

    // Maske, bei der das letzte Bit auf 1 gesetzt ist.
    int mask = 1;
    
    for (int i = 0; i < Integer.SIZE ; i++) {

      // Binäre UND-Verknüpfung von value und mask
      int binaryValue = value & mask;
      
      // Ich gebe hier den Wert nur aus.
      // Du kannst prüfen, ob der Wert ungleich 0 ist
      // und ihn Dir in Deiner Liste speichern
      System.out.println("Binary value at position " + i + " is " + binaryValue);
      
      // Das gesetzte Bit einen nach links verschieben
      mask = mask << 1;
    }
  }
 
Zuletzt bearbeitet von einem Moderator:
N

nillehammer

Gast
Gelöscht, weil es nicht stimmte, was ich hier geschrieben habe. Die Aufaddierung funktioniert auch mit negativen Zahlen.
 
Zuletzt bearbeitet von einem Moderator:

byron1778

Aktives Mitglied
Hallo!

Danke Dir vielmals!

Genau diese Idee hatte ich auch, aber leider habe ich keine Ahnung mehr, wie das ging ( tja, die erste Klasse ist schon länger vorbei :) ).
Jetzt ist es wieder an der Zeit sich damit zu beschäftigen.

Deine Variante hat mir das Leben sehr erleichtert, danke Dir vielmals!

lG
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Simple Date Format Alternativen bitte um Code Allgemeine Java-Themen 14
x46 String Format Fehler Allgemeine Java-Themen 2
M Bei String.format ein Komma statt einem Punkt ausgeben lassen Allgemeine Java-Themen 1
MiMa Das Datum Format ist mir unbekannt. Allgemeine Java-Themen 1
L Erste Schritte Java Date Format Pattern bestimmten Allgemeine Java-Themen 2
Plugon Compiler-Fehler Format specifier %d Allgemeine Java-Themen 5
D AWT Tiff-Datei darstellen bzw in darstellbares Format umwandeln Allgemeine Java-Themen 2
B JTextArea 6 mal auf DinA4 Format verteilen und drucken Allgemeine Java-Themen 1
L Videodateien über Java öffnen unabhängig vom Format Allgemeine Java-Themen 4
F Parser Framework/Plugin für Datei in Custom-Format Allgemeine Java-Themen 2
S Frage zu Format Modifiers in Log4j Allgemeine Java-Themen 11
K LibreOffice Tabelle Dateien im Format .ods bearbeiten Allgemeine Java-Themen 2
Tobse Input/Output Dateiformat: Serialisierung VS Custom format Allgemeine Java-Themen 6
T String in Date parsen (*ohne* bekanntes Format) Allgemeine Java-Themen 8
D JMF - lässt sich nicht im ausgewählten Format aufnehmen Allgemeine Java-Themen 2
G Swing JEditorPaneAppender (Output im HTML-Format) Allgemeine Java-Themen 12
Shoox GZIP format Fehler Allgemeine Java-Themen 5
DEvent embedded Object Database in Text Format Allgemeine Java-Themen 5
C Datum erstellen für SQL Format Date Allgemeine Java-Themen 3
Daniel_L RTF - Format aus Zwischenablage erkennen und "einlesen"? Allgemeine Java-Themen 5
D Datei im DOS/ASCII-Format einlesen. Allgemeine Java-Themen 9
Z Datum ohne Format-Kenntnisse parsen Allgemeine Java-Themen 5
O String.format mit vorangestellten Leerzeichen Allgemeine Java-Themen 10
B 16Bit Integer aus ByteArray im Little Endian Format Allgemeine Java-Themen 17
J String stellengerecht aufbereiten, oder XML to fixed-format Allgemeine Java-Themen 5
B Aktuelle Zeit im Format YYYY-MM-DD HH-MM-SS in Logfile schre Allgemeine Java-Themen 8
G Datum im Format yyyy-mm-dd erstellen Allgemeine Java-Themen 1
M Wave file ins Ogg Format konvertieren! Allgemeine Java-Themen 3
J gzip, die zweite: java.io.IOException: Not in GZIP format Allgemeine Java-Themen 2
M neue Textdatei DOS/Unix-Format Allgemeine Java-Themen 11
S Format von Double Allgemeine Java-Themen 9
R RegEx: Preisangaben im Format xxx,xx erlauben Allgemeine Java-Themen 4
S Klasse Number Format Allgemeine Java-Themen 2
G 1.5er String.format() -> variable Feldlaenge? Allgemeine Java-Themen 5
K Datum in ein anderes Format bringen Allgemeine Java-Themen 5
N Datei ins doc format bringen Allgemeine Java-Themen 2

Ähnliche Java Themen


Oben