Wie konvertiere ich eine Ganzzahl in ihre Binärdarstellung?
Ich benutze diesen Code:
String input = "8";
String output = Convert.ToInt32(input, 2).ToString();
Aber es wirft eine Ausnahme:
Es konnten keine analysierbaren Ziffern gefunden werden
Antworten:
Ihr Beispiel hat eine Ganzzahl, die als Zeichenfolge ausgedrückt wird. Angenommen, Ihre Ganzzahl war tatsächlich eine Ganzzahl, und Sie möchten die Ganzzahl in eine Binärzeichenfolge konvertieren.
Welches gibt 1000 zurück.
quelle
int value = Convert.ToInt32("1101", 2)
würdevalue
den Wert 13 geben .Konvertieren Sie von einer klassischen Basis zu einer beliebigen Basis in C #
Unterstützte Basen sind 2, 8, 10 und 16
quelle
string binary = Convert.ToString(533, 26);
und eine ArgumentException erhalten: Ungültige BasisSehr einfach ohne zusätzlichen Code, nur Eingabe, Konvertierung und Ausgabe.
quelle
http://zamirsblog.blogspot.com/2011/10/convert-decimal-to-binary-in-c.html
quelle
primitiver Weg:
quelle
Convert.ToInt32(string, base)
führt keine Basiskonvertierung in Ihre Basis durch. Es wird davon ausgegangen, dass die Zeichenfolge eine gültige Nummer in der angegebenen Basis enthält und in Basis 10 konvertiert wird.Sie erhalten also eine Fehlermeldung, weil "8" in Basis 2 keine gültige Ziffer ist.
Wird zeigen
15
(1111 Base 2 = 15 Base 10)Wird zeigen
61440
.quelle
Ich weiß, dass diese Antwort den meisten Antworten hier ähnlich aussehen würde, aber ich habe festgestellt, dass fast keine von ihnen eine for-Schleife verwendet. Dieser Code funktioniert und kann als einfach angesehen werden, da er ohne spezielle Funktionen wie ToString () mit Parametern funktioniert und auch nicht zu lang ist. Vielleicht bevorzugen einige For-Loops anstelle von While-Loops. Dies ist möglicherweise für sie geeignet.
quelle
quelle
Eine andere Alternative, aber auch Inline-Lösung mit
Enumerable
undLINQ
ist:quelle
Diese Funktion konvertiert eine Ganzzahl in eine Binärzahl in C #:
quelle
Lernquellen:
Alles, was Sie über Binär wissen müssen
einschließlich Algorithmus zur Umwandlung von Dezimal in Binär
quelle
quelle
quelle
BCL zur Verfügung gestellt
Convert.ToString(n, 2)
ist gut, aber falls Sie eine alternative Implementierung benötigen, die nur wenige Ticks schneller ist als die von BCL bereitgestellte.Die folgende benutzerdefinierte Implementierung funktioniert für alle Ganzzahlen (-ve und + ve). Originalquelle von https://davidsekar.com/algorithms/csharp-program-to-convert-decimal-to-binary
Der obige Code ist meine Implementierung. Ich freue mich auf Feedback :)
quelle
quelle
quelle
Dies kann hilfreich sein, wenn Sie eine übersichtliche Funktion wünschen, die Sie von Ihrer Hauptmethode in Ihrer Klasse aus aufrufen können. Möglicherweise müssen Sie noch anrufen,
int.Parse(toBinary(someint))
wenn Sie eine Nummer anstelle einer Zeichenfolge benötigen, aber ich finde, dass diese Methode ziemlich gut funktioniert. Darüber hinaus kann dies angepasst werden, um einefor
Schleife anstelle von a zu verwendendo
-while
wenn Sie dies bevorzugen.toBinary(10)
Gibt die Zeichenfolge zurück"1010"
.quelle
Ich bin auf dieses Problem bei einer Codierungsaufforderung gestoßen, bei der Sie 32-stellige Dezimalstellen in Binärzahlen konvertieren und die mögliche Kombination der Teilzeichenfolge finden müssen.
quelle
quelle