Grundlagen der Binary für C-Programmierung

Glücklicherweise müssen Sie nicht durch das Schreiben Low-Level-Code jedem digitalen Gerät zu programmieren, Spiegeln Schalter oder Löten Drähte. Das ist, weil die heutigen C-Programmierung auf einer höheren Ebene geschieht. Aber immer noch tief in der Maschine, setzt diese Art von Low-Level-Codierung. Sie sind nur aus der Ursuppe von Einsen und Nullen isoliert, von dem alle Software steigt.

Einführung in die binäre

Die binären Ziffern oder Bits, 1 und 0. Allein, sie sind feeble- aber in Gruppen, sie aufbringen große Macht. Die digitale Speicherung verwendet diese Bits in Gruppen.

Binary Groupings
BegriffC VariableBitsWertebereich UnsignedWertebereich der Unterzeichnung
Bit_Bool10 bis 10 bis 1
Byteverkohlen80 bis 255-128-127
Wortshort int160 bis 65.535-32.768 bis 32.767
Langelong int320 bis 4294967295-2147483648 bis 2147483647

Der Vorteil von Bits in Bytes, Wörter gruppiert, und so weiter ist, dass es ihnen leichter zu handhaben ist. Der Prozessor kann besser mit Informationen in Blöcken befassen. Wie Brocken ihre Werte erhalten basiert auf Potenzen von 2.

Potenzen von 2
AusdruckDezimalwertBinärwert
2011
21210
224100
2381000
241610000
2532100000
26641000000
2712810000000

Sie sehen den Bereich von Werten, die in 8 Bits gespeichert werden können, oder 1 Byte. Es ist der gleiche Bereich, den Sie in einer C-Sprache char-Variable finden würde. Ja, wenn Sie Spalte 2 insgesamt, erhalten Sie 255, die die Anzahl der Bits in einem Byte ist.

Eigentlich, werden Sie 256 möglichen Werte für ein Byte zu finden, die die All-Null-Permutation enthält. Das ist auch ein Wert.

Im Folgenden wird gezeigt, wie die Potenzen von 2 Karte in binäre Speicherung. So wie Dezimalstellen in einer Basis 10 Zahl Erhöhung durch Kräfte von 10, Bits in einer binären Zahl Zunahme von Potenzen von 2, von rechts nach links zu lesen.

bild0.jpg

Jedes Bit, das ist festgelegt, oder den Wert 1 hat, stellt eine Leistung von zwei: 25, 23, 21, und 20. Wenn Sie diese Werte durch ihre dezimalen Pendants vermehren und sie dann insgesamt, erhalten Sie die dezimale Darstellung von binären 00101011, die 43 ist.

Das ist alles schön und gut, aber bitte tun Sie es nicht merken!

  • Setzen Sie sich nicht zu kümmern binär in dezimal Werte- den Computer mit der Übersetzung macht, dass Arbeit für Sie die ganze Zeit. Tatsächlich sieht der Computer nur binär und zeigt dann Dezimalzahlen als Gefälligkeit für die menschliche Augäpfel. Aber wenn Sie binäre Werte manipulieren, hilft es zu wissen, was los ist.

  • ein bisschen der Wert auf 1 ändern, wird als Setzen des Bits.

  • ein bisschen den Wert auf 0 ändern, wird als Zurücksetzen ein wenig.

Wie binäre Werte anzuzeigen

Um am besten Sinn des Binärmanipulation Betreiber C-Sprache, hilft es, eine binäre Zahl in Aktion zu sehen. Die Funktion printf () fehlt ein Binärkonversion Charakter, und die C-Bibliothek Host keine binäre Ausgangsfunktion. Nein, um eine binäre Zahl zu sehen, müssen Sie Ihre eigene Funktion Handwerk.

Das binbin () Funktion stellt eine binäre Ausgangsfunktion genannt binbin (). Die binbin () Funktion, bei Linie 15 in der binbin () Funktion, schluckt einen int-Wert. Sein Ausgang ist ein String, int-Wert in binären Ziffern darstellen.

DAS Binbin () FUNKTION

#include char * binbin (int n) -int main () {int input-printf ( "Geben Sie einen Wert von 0 bis 255:") -scanf ( "% d", input) -printf ( "% d binäre% s n ", Eingang, binbin (Eingang)) - return (0) -} char * binbin (int n) {static char bin [9] -int x-for (x = 0-XLT; 8-x ++) {bin [x] = n 0x80? '1': '0'-n lt; lt; = 1} bin [x] = ' 0'-return (bin) -}

Im Allgemeinen wird der Inhalt der binbin () Funktion eher mysteriös. Das ist okay.

Übung 1: Geben Sie den Quellcode aus dem binbin () Funktion in ein neues Projekt. Bauen und es ein paar Mal laufen, um zu sehen, wie ganze Zahlen als binäre Zahlen erscheinen.

Wie in der schriftlichen binbin () Funktion binbin () zeigt nur 8 Bits von Daten, wenn die int Variablentyp typischerweise viel mehr Bits speichert.

Übung 2: Ändern Sie den binbin () Funktion aus dem binbin () Funktion, so dass es zeigt 16 Bits des int value. (Na ja, technisch gesehen, 16 Bit ist ein short int.), Dies zu tun, müssen Sie diese Elemente zu ändern:

Zeile 9: Ändern Sie den Text, so dass 65.535 anstelle von 255 angegeben wird.

Zeile 17: Ändern Sie die Größe des Arrays bis 17 für 16 Zeichen zu berücksichtigen, in der Ausgabe plus 0 (Null-Zeichen) am Ende des Strings.

Zeile 20: Stellen Sie den unmittelbaren Wert 8 im Code 16 zu berücksichtigen alle 16 Zeichen in der Ausgabe.

Zeile 22: Ersetzen Sie den Wert 0x80 mit 0x8000. Durch diese Änderung wird die Bit-Feld größer.

Bauen Sie Übung 2. Führen Sie es ein paar Mal, um zu sehen, was das Bit-Feld wie für größere Werte aussieht.

Menü