Ich lerne C und ich habe kürzlich herausgefunden, dass wir ganze Zahlen auf verschiedene Arten darstellen können, wie zum Beispiel:
(Angenommen, i
hat einen "lesbaren" Wert von 512 .) Hier sind die Darstellungen:
Etwas wie int i = 1000000000b
? Das ist lustig, aber leider akzeptiert kein C-Compiler diesen Wert.
Der Standard beschreibt keine Möglichkeit, "binäre Literale" zu erstellen. Die neuesten Versionen von GCC und Clang unterstützen diese Funktion jedoch mit einer Syntax, die der Hex-Syntax ähnelt, außer dass b
anstelle von x
:
Wie bereits erwähnt, blockiert die Verwendung solcher binärer Literale die C- und C ++ - Compiler von Visual Studio. Sie sollten also darauf achten, wo und wie Sie sie verwenden.
C ++ 14 (ich weiß, ich weiß, das ist nicht C) standardisiert die Unterstützung für binäre Literale.
Dies ist in C nicht möglich.
Aber du hast gesagt, du lernst C ++. In C ++ können Sie BOOST_BINARY verwenden, bis C ++ 0x erlaubt benutzerdefinierte Literale .
Bitte beachten Sie jedoch, dass es sehr einfach ist, sich für die Übersetzung von hex in binär und zurück zu entscheiden.
Ordnen Sie für eine gegebene Binärzahl einfach die Ziffern in Vierergruppen zusammen und lernen Sie dies
%Vor%Nach ein paar Versuchen, diese Übersetzung in Ihrem Kopf zu machen, werden Sie sich damit sehr wohl fühlen. (Natürlich könnten Sie das gleiche mit Oktal machen, aber hex ist noch kompakter als oktal.)
Für Ihr konkretes Beispiel:
%Vor%Dies ist in Standard C nicht möglich. Die Sprache erlaubt keine Angabe von Integer-Literalen in Binärdateien.
Tags und Links c integer binary representation