Huis Persoonlijke financiën Express Binary Numbers in C ++ - dummies

Express Binary Numbers in C ++ - dummies

Inhoudsopgave:

Video: How to print out a number in binary format using C/C++ 2024

Video: How to print out a number in binary format using C/C++ 2024
Anonim

C ++ -variabelen worden intern opgeslagen als zogenaamde binaire getallen. Binaire getallen worden opgeslagen als een reeks van 1 en 0 waarden die bekend staan ​​als bits. Meestal hoeft u niet echt af te rekenen met welke bits u gebruikt om cijfers weer te geven. Soms is het echter praktisch en handig om te sleutelen aan getallen op bitniveau - dus C ++ biedt een reeks operatoren voor dat doel.

De zogenaamde bitgewijs logische operatoren werken op hun argumenten op bitniveau. Om te begrijpen hoe ze werken, moet eerst worden onderzocht hoe computers variabelen opslaan.

Het systeem voor decimale getallen

De nummers waarmee u vertrouwd was vanaf het moment dat u voor het eerst op uw vingers kon tellen, staan ​​bekend als decimale getallen omdat ze zijn gebaseerd op het getal 10. Over het algemeen geeft de programmeur C ++ -variabelen weer als decimale getallen. U zou dus de waarde van var kunnen opgeven als (zeg) 123, maar houd rekening met de implicaties.

Een getal zoals 123 verwijst naar 1 * 100 + 2 * 10 + 3 * 1. Al deze basisnummers - 100, 10 en 1 - zijn machten van 10.

123 = 1 * 100 + 2 * 10 + 3 * 1

Anders uitgedrukt (123) ziet er als volgt uit:

123 = 1 * 10 < 2 + 2 * 10 1 + 3 * 10 0 Houd er rekening mee dat

elk nummer tot het nulpunt 1 is. Andere getallensystemen

Wel, oke, het gebruik van 10 als basis (of

basis ) van ons telsysteem komt waarschijnlijk voort uit die 10 menselijke vingers, de oorspronkelijke telgereedschappen. Een alternatieve basis voor een telsysteem had net zo goed 20 kunnen zijn.

Als ons nummeringsschema door honden was uitgevonden, zou het best op 8 kunnen zijn gebaseerd (één cijfer van elke poot is uit het zicht op het achterste deel van het been). Wiskundig zou zo'n

octaal systeem net zo goed hebben gewerkt: 123

10 = 1 * 8 2 + 7 * 8 1 < + 3 * 8 0 = 173 8 De kleine 10 en 8 verwijzen hier naar het nummeringssysteem, 10 voor decimaal (basis 10) en 8 voor octaal (basis 8). Een telsysteem kan elke positieve basis gebruiken. Het binaire getalsysteem

Computers hebben in wezen twee vingers. Computers geven de voorkeur aan tellen met behulp van basis 2. Het getal 123

10

zou op deze manier worden uitgedrukt: 123 10

= 0 * 2 7 + 1 * 2 < 6 + 1 * 2 5 + 1 * 2 4 + 1 * 2 3 + 0 * 2 2 + 1 * 2 1 + 1 * 2 0 123 10 = 0 * 128 + 1 * 64 + 1 * 32 + 1 * 16 + 1 * 8 + 0 * 4 + 1 * 2 + 1 * 1 = 01111011 2 Computerconventie drukt binaire getallen uit met 4, 8, 16, 32 of zelfs 64 binaire cijfers, zelfs als de eerste cijfers 0 zijn.Dit komt ook door de manier waarop computers intern worden gebouwd. Omdat de term cijfer

verwijst naar een veelvoud van 10, wordt een

binair getal een bit (een afkorting van binair cijfer >). Een byte bestaat uit 8 bits. (Het oproepen van een binair cijfer een byte-it leek geen goed idee.) Geheugen wordt meestal gemeten in bytes (zoals rollen worden gemeten in eenheden van een dozijn van een bakker). Met zo'n kleine basis moet u een groot aantal bits gebruiken om getallen uit te drukken. Mensen willen niet dat het gedoe van het gebruik van een expressie zoals 011110112 zo'n alledaagse waarde uit te drukken als 123 10

. Programmeurs geven er de voorkeur aan om getallen uit te drukken door een even aantal bits te gebruiken. Het octale systeem - dat gebaseerd is op 3 bits - was het standaard binaire systeem in de begindagen van C. We zien hier nog een spoor van, een constante die begint met een 0 wordt octaal verondersteld in C ++. Dus, de regel: cout << "0173 =" << 0173 << endl; produceert de volgende uitvoer: 0173 = 123

Echter, octaal is bijna volledig vervangen door het

hexadecimale

-systeem, dat is gebaseerd op 4-bits cijfers.

Hexadecimaal gebruikt dezelfde cijfers voor de getallen 0 tot en met 9. Voor de cijfers tussen 9 en 16 gebruikt hexadecimaal de eerste zes letters van het alfabet: A voor 10, B voor 11, enzovoort. Dus, 123

10 wordt 7B 16, zoals deze: 123 = 7 * 16 1 + B (ie 11) * 16 0

= 7B 16 Programmeurs geven de voorkeur aan hexadecimale getallen uit te drukken in veelvouden van 4 hexadecimale cijfers, zelfs als het eerste cijfer in elk geval 0 is. Tot slot, wie wil een hexadecimaal getal zoals 7B uitdrukken 16 door een subscript te gebruiken? Terminals ondersteunen

geen

subscripts. Zelfs op een tekstverwerker is het slepen om de lettertypen van en naar de subscript-modus te veranderen, gewoon om twee slechte cijfers te typen. Daarom gebruiken programmeurs (geen dwazen, zij) de conventie om een ​​hexadecimaal getal met een 0x te beginnen. Dus wordt 7B 0x7B. Met deze conventie is het hexadecimale getal 0x7B gelijk aan 123 decimaal, terwijl 0x123 hexadecimaal gelijk is aan 291 decimaal. Het codefragment cout << "0x7B =" << 0x7B << endl; cout << "0x123 =" << 0x123 << endl; produceert de volgende uitvoer: 0x7B = 123 0x123 = 291

U kunt alle wiskundige operators op hexadecimale nummers gebruiken op dezelfde manier als u ze op decimale getallen toepast.

Als u het echt wilt, kunt u binaire getallen schrijven in C ++ '14 met het voorvoegsel '0b'. Dus 123 wordt 0b01111011.
Express Binary Numbers in C ++ - dummies

Bewerkers keuze

Een Oracle-omgeving instellen - dummies

Een Oracle-omgeving instellen - dummies

Als u een typische PL / SQL-omgeving wilt instellen, hebt u de volgende componenten: Databaseserver: dit is een computer (of een reeks computers) die de Oracle-database uitvoert. Oracle werkt in veel populaire computeromgevingen. De meest gebruikte met Oracle zijn UNIX, Linux of een versie van Microsoft Windows. PL / SQL wordt meestal uitgevoerd ...

SQL-rijwaarden en -waarden - dummies

SQL-rijwaarden en -waarden - dummies

De waarden die worden bewaard in de cellen die de snijpunten van de SQL-database vormen De rijen en kolommen van de tabel zijn de grondstoffen waaruit u zinvolle relaties en trends kunt afleiden. Rijwaarden De meest zichtbare waarden in een database zijn tabelrijwaarden. Dit zijn de waarden die elke rij van een databasetabel ...

SQL eerste, tweede en derde normale vormen - dummies

SQL eerste, tweede en derde normale vormen - dummies

Er zijn drie bronnen van wijzigingsanomalieën in SQL Deze worden gedefinieerd als eerste, tweede en derde normale vormen (1NF, 2NF, 3NF). Deze normale vormen fungeren als remedies voor het wijzigen van anomalieën. Eerste normale vorm Om in de eerste normale vorm (1NF) te zijn, moet een tabel de volgende eigenschappen hebben: De tabel is tweedimensionaal met rijen en ...

Bewerkers keuze

Een kijkje nemen in het syndroom van Empty-Nest - dummies

Een kijkje nemen in het syndroom van Empty-Nest - dummies

Een veel voorkomende misvatting is dat wanneer de kinderen van een stel vertrekken thuis, zullen pappa en mama het syndroom van empty-nest ontwikkelen. Ja, ze hebben misschien een leeg nest, maar voor sommige paren bloeit hun liefdesleven in deze periode van hun leven. De slachtoffers van het syndroom zijn de paren waarvan de relatie uit elkaar valt als zij de enige ...

STD's: wat u moet weten over herpes - dummies

STD's: wat u moet weten over herpes - dummies

Herpes, veroorzaakt door het herpes simplex-virus (HSV) ), is een ongeneeslijke SOA. Herpes heeft eigenlijk twee vormen: herpes simplex-type 1 (HSV-1) en herpes simplex-type 2 (HSV-2). HSV-1 wordt meestal geassocieerd met koortsblaasjes en koortsblaren boven de taille. "Ongeveer 80 procent van de Amerikaanse volwassenen heeft orale herpes. Ongeveer 25 procent van ...

Tiener Geslacht: hoe te weten Hoe ver te gaan - dummies

Tiener Geslacht: hoe te weten Hoe ver te gaan - dummies

Een van de grootste vragen voor tieners is niet "Zou ik seks moeten hebben? "Maar" Hoe ver moet ik gaan? "Terwijl het eigen comfortniveau en dat van de partner de topprioriteit zou moeten zijn in deze beslissing, spelen andere factoren een rol, vooral als tieners dat amorfe concept van" het derde honk overwegen. "" Derde basis "...

Bewerkers keuze

Tien voorwaarden American Football Announcers Gebruik - dummies

Tien voorwaarden American Football Announcers Gebruik - dummies

Een van de moeilijkste en meest intimiderende onderdelen over het volgen van een Amerikaans voetbalwedstrijd is dat de presentatoren soms een vreemde taal lijken te spreken die alleen bekend is bij echte voetballiefhebbers. Maar als je een aantal belangrijke termen onthoudt, ben je ver voor op het spel. Hier zijn enkele voetbaltermen die je misschien hoort, ...

Het begin van een voetbalspel: The Kickoff - dummies

Het begin van een voetbalspel: The Kickoff - dummies

Voor Amerikaanse voetbalfans, de openingsaftrap is een opwindende start voor elke game. Ze zien de tweezijdige sensatie van het ene team dat probeert het andere te blokkeren en helpt de herhaler om door en voorbij 11 snelladers van het trapende team te rennen. (Wel, maak die tien spelers.De kicker staat meestal rond de 50-yard-lijn, ...

Uw voetbalcoachtoelen afstemmen op een leeftijdsgroep - dummies

Uw voetbalcoachtoelen afstemmen op een leeftijdsgroep - dummies

Elk kind in uw team is anders zoveel manieren. Sommigen zijn begaafde hardlopers, anderen kunnen duizelingwekkende vangsten maken en wat moeite om simpelweg de basistechnieken van het spel te vatten. Ongeacht de sterke en zwakke punten van de kinderen, die overal op de kaart staan, hebben jongeren algemene kenmerken die worden beïnvloed ...