Inhoudsopgave:
Video: Binair Rekenen - Vermenigvuldigen 2024
Gelukkig hoef je geen digitaal apparaat te programmeren door low-level code, flipping-schakelaars of soldeerdraden. Dat komt omdat de C-programmering van vandaag op een hoger niveau plaatsvindt. Maar toch, diep in de machine, gaat dat type low-level codering door. Je bent gewoon geïsoleerd van de oersoep van enen en nullen waaruit alle software opstijgt.
Inleiding tot binair
De binaire cijfers of bits zijn 1 en 0. Alleen zijn ze zwak; maar in groepen verzamelen ze grote macht. Digitale opslag gebruikt deze bits in groepen.
Term | C-variabele | Bits | Waardebereik niet ondertekend | Waardebereik ondertekend |
---|---|---|---|---|
Bit | _Bool | 1 > 0 tot 1 | 0 tot 1 | Byte |
tekens | 8 | 0 tot 255 | -128 tot 127 | woorden |
korte int | 16 > 0 tot 65, 535 | -32, 768 tot 32, 767 | Lang | lang int |
32 | 0 tot 4, 294, 967, 295 | -2, 147, 483, 648 tot 2, 147, 483, 647 |
|
Het voordeel van het groeperen van bits in bytes, woorden, enzovoort, is dat ze gemakkelijker te gebruiken zijn. De processor kan beter informatie in brokken verwerken. Hoe brokken hun waarden krijgen, is gebaseerd op de macht van 2. |
Expressie
Binaire waarde | 2 | 0 |
---|---|---|
1 1 > 2 | 1 | 2 |
10 2 | 2 | 4 |
100 2 | 3 | 8 |
1000 2 | 4 | 16 |
10000 2 | 5 | 32 |
100000 2 | 6 | 64 |
1000000 2 > 7 | 128 | 10000000 |
|
In feite vindt u 256 mogelijke waarden voor een byte, die de all-zero permutatie omvat. Dat is ook een waarde. | Hieronder ziet u hoe de bevoegdheden van 2 worden toegewezen aan binaire opslag. Net zoals decimalen in een base 10-getal toenemen met machten van 10, nemen bits in een binair getal toe met machten van 2, waarbij van rechts naar links wordt gelezen. |
5, 2
3
, 2 1 , en 2 < 0 . Wanneer u deze waarden vermenigvuldigt met hun decimale tegenhangers en ze vervolgens optelt, krijgt u de decimale weergave van binair 00101011, dat is 43. Dat is allemaal goed en wel, maar onthoud het alsjeblieft niet! Maak uzelf geen zorgen over het vertalen van binaire naar decimale waarden; de computer doet die klus altijd voor je. Inderdaad, de computer ziet alleen binair en toont vervolgens decimale getallen als een beleefdheid voor uw menselijke oogbollen.Maar als u binaire waarden manipuleert, helpt het om te weten wat er aan de hand is. Als u de waarde van een bit naar 1 wijzigt, wordt de bit genoemd. Het wijzigen van de waarde van een bit in 0 wordt aangeduid als waarbij een beetje wordt gereset.
Binaire waarden weergeven
-
Om de binaire bewerkingsexploitanten van de C-taal zo goed mogelijk te begrijpen, helpt het om een binair getal in actie te zien. De functie printf () mist een binair conversieteken en de C-bibliotheek host geen binaire uitvoerfunctie. Nee, om een binair getal te bekijken, moet je je eigen functie maken.
-
De
binbin () functie presenteert een binaire uitvoerfunctie genaamd binbin (). De binbin () -functie, op regel 15 in De binbin () -
Functie, slikt een int-waarde in. De uitvoer is een tekenreeks die die int-waarde in binaire cijfers vertegenwoordigt. DE
BINBIN ()
FUNCTION
# include char * binbin (int n); int main () {int input; printf ("Typ een waarde van 0 tot 255:"); scanf ("% d", & invoer); printf ("% d is binair% sn", invoer, binbin (invoer)); return (0);} char * binbin (int n) {statische char bin [9]; int x; for (x = 0; x <8; x ++) {bin [x] = n & 0x80? '1': '0'; n << = 1;} bin [x] = "; return (bin);} Over het algemeen lijkt de inhoud van de binbin () -functie nogal mysterieus. Dat is oke. Oefening 1 : Typ de broncode uit de binbin ()
-functie van in een nieuw project.Bouw en voer het een paar keer uit om te zien hoe gehele getallen als binaire getallen worden weergegeven. Zoals beschreven in The
binbin ()
Functie binbin () geeft slechts 8 bits aan gegevens weer, hoewel het type int variabele meestal veel meer bits opslaat.
Oefening 2: Wijzig de functie binbin () van < binbin () Functie zodat 16 bits van de int-waarde worden weergegeven. (Nou, technisch gezien is 16 bits een korte int.) Hiervoor moet u deze items wijzigen: Regel 9: Wijzig de tekst zodat 65535 wordt opgegeven in plaats van 255. <17> Lijn 17: wijzig de grootte van de array in 17 om rekening te houden met 16 tekens in de uitvoer plus het (nul-teken) aan het einde van de reeks.
Regel 20: Pas de directe waarde 8 in de code aan naar 16 om alle 16 tekens in te verwerken het resultaat. Regel 22: vervang de waarde 0x80 door 0x8000. Deze wijziging maakt het bitveld groter. Bouw Oefening 2. Voer een paar keer uit om te zien hoe het bitveld eruit ziet voor grotere waarden.