Hem Personliga finanser Uttrycka binära nummer i C ++-dummies

Uttrycka binära nummer i C ++-dummies

Innehållsförteckning:

Video: Technology Stacks - Computer Science for Business Leaders 2016 2024

Video: Technology Stacks - Computer Science for Business Leaders 2016 2024
Anonim

C ++ -variabler lagras internt som så kallade binära nummer. Binära tal lagras som en sekvens av 1 och 0 värden kända som bitar. För det mesta behöver du inte verkligen hantera siffror på bitnivån. Det finns dock tillfällen när det gör det bekvämt. C ++ tillhandahåller en uppsättning operatörer för detta ändamål.

De så kallade bitvisa logiska operatörerna arbetar på sina argument på bitnivån. För att förstå hur de fungerar, undersöka hur datorer lagrar variabler.

Decimaltalsystemet

Numren som du känner till är kända som decimaler eftersom de är baserade på nummer 10. Generellt uttrycker programmeraren C ++ variabler som decimaltal. Således skulle du säga att värdet på var är 123, till exempel.

Ett tal som 123 hänför sig till 1 * 100 + 2 * 10 + 3 * 1 . Vart och ett av dessa basnummer - 100, 10 och 1 - är en effekt av 10.

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

Uttryckt på ett något annat men likvärdigt sätt:

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

Kom ihåg att något tal till nollströmmen är 1.

Andra nummersystem

Användning av ett basnummer på 10 för räkningssystemet stannar sannolikt utifrån det faktum att människor har 10 fingrar, de ursprungliga räkneverktygen. Alternativet skulle ha varit bas 20.

Om hundar hade uppfunnit vårt numreringsschema kan det väl ha varit baserat på siffran 8 (en siffra i varje tass är ur sikte på benets baksida). Ett sådant oktal -system skulle ha fungerat lika bra:

123 10 = 1 * 8 2 + 7 * 8 1 + 3 * 8 0 = 173 8

Den lilla 10 och 8 hänvisar här till numreringssystemet, 10 för decimal (bas 10) och 8 för oktal (bas 8). Ett räkningssystem kan använda en positiv bas.

Det binära nummersystemet

Datorer har i huvudsak två fingrar. (Kanske är det därför datorerna är så dumma: utan en motståndlig tumme kan de inte förstå någonting. Och igen, kanske inte.) Datorer föredrar att räkna med bas 2. Numret 123 10 skulle uttryckas som:

123 10 = 0 * 128 + 1 * 64 + 1 * 32 + 1 * 16 + 1 * 8 + 0 * 4 + 1 * 2 + 1 * 1

= 01111011 < 2 Det är alltid konvention att uttrycka binära tal genom att använda 4, 8, 32 eller 64 binära siffror även om de ledande siffrorna är noll. Detta beror också på hur datorer byggs internt.

Eftersom termen

siffra avser en multipel av tio kallas en binär siffra en bit . Termen härstammar från binär (b-) siffra (-it).Åtta bitar utgör en byte. Ett ord är vanligtvis antingen två eller fyra byte. Med en så liten bas är det nödvändigt att använda ett stort antal bitar för att uttrycka tal. Det är obekvämt att använda ett uttryck som 01111011

2 för att uttrycka ett sådant vardagligt värde som 123 10 . Programmerare föredrar att uttrycka siffror med enheter av byte eller åtta bitar. En enstaka, fyrbits-siffra är väsentligen bas 16, eftersom fyra bitar kan uttrycka upp till valfritt värde från 0 till 15. Bas 16 är känt som det

hexadecimala räkningssystemet. Hexadecimal kontraheras ofta till helt enkelt hex. Hexadecimal använder samma siffror för siffrorna 0 till 9. För siffrorna mellan 9 och 16 använder hexadecimal de första sex bokstäverna i alfabetet: A för 10, B för 11, och så vidare. Således blir 123

10 7B 16 . 0 = = 7B

16 Eftersom programmerare föredrar att uttrycka siffror i 4, 8, 32 eller 64 bitar föredrar de på samma sätt hexadecimala siffror i 1, 2, 4 eller 8 hexadecimala siffror, även när de främsta siffrorna är 0. Slutligen är det obekvämt att uttrycka ett hexadecimalt tal som 7B < 16 med ett prenumeration, eftersom terminaler inte stöder abonnenter. Även på en textbehandlare är det obekvämt att ändra teckensnitt till och från prenumerationsläge bara för att skriva två siffror. Därför använder programmerare konventionen att starta ett hexadecimalt tal med en 0x (orsaken till en sådan konstig övertygelse går tillbaka till de första dagarna av C). Således blir 7B 0x7B. Med hjälp av denna konvention är 0x7B lika med 123 (medan 0x123 är lika med 291.) Alla matematiska operatörer kan utföras på hexadecimala tal på samma sätt som de tillämpas på decimaltal. Anledningen till att vi inte kan utföra en multiplikation som 0xC * 0xE i huvudet har mer att göra med multiplikationstabellerna vi lärde oss i skolan än på någon begränsning i nummersystemet.

Uttrycka binära nummer i C ++-dummies

Redaktörens val

Hur man tar bort eller minimerar webbdelar i SharePoint 2013 - dummies

Hur man tar bort eller minimerar webbdelar i SharePoint 2013 - dummies

Du har två alternativ för att ta bort en webbdel från din SharePoint-sida - stängning eller radering. Att stänga en webbdel lämnar webbdelen på sidan så att du kan aktivera den igen för framtida användning. Att ta bort webbdelen tar bort webbdelen från din sida (men tar inte bort den från SharePoint). Till ...

För att ladda ner Apps från SharePoint Store - dummies

För att ladda ner Apps från SharePoint Store - dummies

Förutom de appar som följer med SharePoint, Du kan också lägga till appar från tredje part. Dessa tredjepartsprogram visas i SharePoint-butiken. Om du använder SharePoint Online har du tillgång till hela butiken. Om du använder SharePoint On-Premise kan dina lokala IT-administratörer ha låst ned de appar som ...

Hur man visar visningar via webbdelar i SharePoint 2013 - dummies

Hur man visar visningar via webbdelar i SharePoint 2013 - dummies

Du vill visa din SharePoint appdata med annan text och webbdelar på flera platser, till exempel hemsidor för hemsida, webbsidor eller publiceringssidor. I dessa situationer vill du inte att dina användare ska interagera med själva appen med alla redigeringsalternativ. Du vill bara att de ska se flera ...

Redaktörens val

Vad är Kik? - dummies

Vad är Kik? - dummies

Grundades 2009, är Kik en gratis snabbmeddelandeprogram utvecklad från Kik Interactive. Kik är tillgängligt på Android, Windows Phone och iOS-enheter. Applikationen är modellerad efter BlackBerry Messenger. Kik använder den befintliga smarttelefonens dataplan eller Wi-Fi för att skicka och ta emot meddelanden, videoklipp, foton, mobila webbsidor, skisser och annat innehåll. ...

ÖVersätt Twitter Slang och Jargon - dummies

ÖVersätt Twitter Slang och Jargon - dummies

Diskussioner om och om Twitter är fulla med alla slags förkortningar och jargong som kan förvirra nya Twitter-användare. Vad talar folk om (och tweeting) om? Följande ordlista definierar några av de förvirrande förkortningarna och Twitter-lingo du kan komma över. AFAIK: Så vitt jag vet. bot: Ett konto som drivs av en ...

Vad är Letgo? - dummies

Vad är Letgo? - dummies

Letgo är en mobil klassificerad applikation som tillåter användare att köpa från och sälja till andra lokalt. Du kan använda Letgo till fyndbutik eller slutligen släppa på saker som samlar damm runt ditt hus. I likhet med andra classifieds-applikationer som Wallapop eller Craigslist kommer säljare att skicka ett objekt och vänta på en köpare ...

Redaktörens val

Vanliga kodningsfel - dummies

Vanliga kodningsfel - dummies

Koden fungerar inte? Här är några vanliga misstag som kan gå upp till och med även den mest erfarna kodaren. Om din kod inte kommer att köras, försök att springa ned den här checklistan för att se om du har några av dessa fel: Har inte en slutlig HTML-tagg efter varje öppnande HTML-tagg . Saknade parentes i ...

Grundläggande kodningsordförråd - dummies

Grundläggande kodningsordförråd - dummies

Kodning har ett omfattande vokabulär som för lekmän kan verka som ogenomtränglig technobabble. Oavsett om du läser kodningsrelaterad artikel online eller pratar med en utvecklare på jobbet hörs det kanske ord som du inte har hört förut eller som har en annan mening i en kodande kontext. Här är några vanliga ordförrådsord att veta: Allmänt ...