Bitweise Operatoren und Binär-string-Bewertungen

Ich eine Aufgabe haben, wo ich konvertieren von hexadezimal-in eine 16-bit-Binär-string und vergleicht dann zwei dieser bitweise Operatoren verwenden. Ich habe eine for-Schleife, die ausgeführt wird a.charAt[i] & b.charAt[i] einen string builder-string. Nun, ich erwarte, dass die Ausgabe eine binäre Zahl, aber ich habe mich zu einem Punkt, wo jedes mal, wenn diese Zeile ausgeführt wird, es gibt mir zahlen, die nicht 0 oder 1. Und es gibt mir 2 zahlen (2 und 3). Was mache ich falsch?

Code:

    int bin = 0;
    hex = hex.replaceFirst("0x", "");
    bin = Integer.parseInt(hex, 16);
    hex = String.format("%16s", Integer.toBinaryString(bin));
    return hex;

Die zwei hexadezimal ich versuche zu bewerten sind FFF7 und 0001. Ich habe erfolgreich konvertiert Sie in binäre Zeichenfolgen. Auch ich weiß nicht warum, aber die vorhergehenden Nullen werden nicht angezeigt, nur die Leerzeichen :/

Habe ich online geschaut ausgiebig für Stunden und kann nicht scheinen, um das problem zu finden ich habe.

  • Sollten Sie auch Ihren code. Es hilft.
  • Binäre Operationen wie & arbeiten auf allen bits der beiden zahlen auf einmal, nicht auf Ihre einzelnen bits. Deshalb ist das Ergebnis x & y kann etwas, das andere als 0 oder 1.
Schreibe einen Kommentar