Ich habe eine Nummer und möchte sie binär ausdrucken. Ich möchte es nicht tun, indem ich einen Algorithmus schreibe. Gibt es eine integrierte Funktion dafür in Java?
276
Angenommen, Sie meinen "eingebaut":
int x = 100;
System.out.println(Integer.toBinaryString(x));
Siehe Integer-Dokumentation .
( Long
hat eine ähnliche Methode, BigInteger
hat eine Instanzmethode, mit der Sie den Radix angeben können.)
Hier müssen Sie sich nicht nur auf ein Binärformat oder ein anderes Format verlassen ... es steht eine flexible integrierte Funktion zur Verfügung, die das gewünschte Format in Ihrem Programm ausgibt. Integer.toString (int, Darstellung);
quelle
toBinaryString
verwendet die Zweierkomplementausgabe,toString
verdeckt die Zahl der angegebenen Basis und setzt ein negatives Vorzeichen vor, alsotoString(-8, 2) == "-1000"
quelle
Ich brauchte etwas, um die Dinge schön auszudrucken und die Bits jedes n-Bit zu trennen. Mit anderen Worten, zeigen Sie die führenden Nullen an und zeigen Sie ungefähr Folgendes:
Also hier ist was ich geschrieben habe:
Rufen Sie es so auf:
quelle
result.replace(result.length() - 1, result.length(), "");
ist erforderlich? Während wir vorbeikommenint
, ist das schon 32-Bit. Was ersetzen wir in der vorletzten Zeile?String
dietrim
Funktion der Klasse aufrufen , um den gleichen Effekt zu erzielen.Alte Schule:
quelle
System.out.println
und bin&
eingebaut;)Ausgabe:
quelle
Schauen Sie sich diese Logik an, um eine Zahl in eine beliebige Basis umzuwandeln
ODER
quelle
Dies ist die einfachste Methode zum Drucken der internen Binärdarstellung einer Ganzzahl. Zum Beispiel : Wenn wir n als 17 nehmen, lautet die Ausgabe: 0000 0000 0000 0000 0000 0000 0001 0001
quelle
Probieren Sie es einfach aus. Wenn der Bereich nur die Binärwerte des angegebenen ganzzahligen Werts druckt. Es kann positiv oder negativ sein.
Eingang
5
Ausgabe
101
quelle
Lösung mit 32-Bit-Anzeigemaske,
quelle
Einfache und ziemlich einfachste Lösung.
quelle
Hier gibt es bereits gute Antworten auf diese Frage. Aber so habe ich es selbst versucht (und es könnte die einfachste logikbasierte sein → modulo / dividieren / addieren ):
quelle
Die Frage ist in Java (und wahrscheinlich auch in einer anderen Sprache) schwierig.
Eine Ganzzahl ist ein vorzeichenbehafteter 32-Bit- Datentyp, aber Integer.toBinaryString () gibt eine Zeichenfolgendarstellung des Ganzzahlarguments als vorzeichenlos zurück Ganzzahl in Basis 2 zurück.
Integer.parseInt (Integer.toBinaryString (X), 2) kann also eine Ausnahme generieren (signiert oder nicht signiert).
Der sichere Weg ist die Verwendung von Integer.toString (X, 2); Dies wird etwas weniger Elegantes erzeugen:
-11110100110
Aber es funktioniert!!!
quelle
Ich denke, es ist der bisher einfachste Algorithmus (für diejenigen, die keine integrierten Funktionen verwenden möchten):
Beispiel:
convertNumber (1) -> "0b1"
convertNumber (5) -> "0b101"
convertNumber (117) -> "0b1110101"
So funktioniert es: while-Schleife verschiebt eine Zahl nach rechts (Ersetzen des letzten Bits durch vorletztes Bit usw.), ruft den Wert des letzten Bits ab und legt ihn in StringBuilder ab. Wiederholt, bis keine Bits mehr vorhanden sind (dann a = 0).
quelle
quelle
Versuchen Sie Folgendes:
}}
10010100
quelle
Binäre Darstellung des gegebenen int x mit links aufgefüllten Nullen:
quelle
Geben Sie eine beliebige Dezimalzahl als Eingabe ein. Danach arbeiten wir wie Modulo und Division, um die angegebene Eingabe in eine Binärzahl umzuwandeln. Hier ist der Quellcode des Java-Programms zum Konvertieren von Ganzzahlwerten in Binärwerte und die Bitnummer dieser Binärzahl für seine Dezimalzahl. Das Java-Programm wurde erfolgreich kompiliert und auf einem Windows-System ausgeführt. Die Programmausgabe wird auch unten gezeigt.
quelle
Da keine Antwort akzeptiert wird, war Ihre Frage möglicherweise, wie eine Ganzzahl in einer Binärdatei gespeichert werden kann. java.io.DataOutputStream könnte das sein, wonach Sie suchen: https://docs.oracle.com/javase/8/docs/api/java/io/DataOutputStream.html
quelle
Sie können die Bitmaske (1 << k) verwenden und eine UND-Operation mit der Nummer ausführen! 1 << k hat ein Bit an k Position!
quelle
Es funktioniert mit vorzeichenbehafteten und vorzeichenlosen Werten, die eine leistungsstarke Bitmanipulation verwenden, und generiert die ersten Nullen auf der linken Seite.
quelle