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

Express 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 vilka specifika bitar du använder för att representera antal. Ibland är det dock praktiskt och bekvämt att tinker med siffror på bitnivå - så C ++ ger en uppsättning operatörer för det ändamålet.

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

Decimaltalsystemet

De siffror du har känt till från den tid du först kan räkna med på fingrarna är kända som decimaler eftersom de är baserade på numret 10. Generellt uttrycker programmeraren C ++-variabler som decimaltal. Således kan du ange värdet på var som (säg) 123, men överväga konsekvenserna.

Ett tal som 123 hänför sig till 1 * 100 + 2 * 10 + 3 * 1. Alla dessa basnummer - 100, 10 och 1 - är krafter på 10.

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

123 uttrycks så här:

123 = 1 * 10 < 2 + 2 * 10 1 + 3 * 10 0 Kom ihåg att

något nummer till nollkraft är 1. Andra nummersystem

Tja, okej, med 10 som basen (eller

basen ) av vårt räkningssystem kommer förmodligen från de 10 mänskliga fingrarna, de ursprungliga räkneverktygen. En alternativ bas för ett räkningssystem kunde lika lätt ha varit 20.

Om vårt nummereringsschema hade uppfunnits av hundar, kan det väl vara baserat på 8 (en siffra i varje tass är ur sikte på benets baksida). Matematiskt skulle ett sådant

oktalt system 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 decimaltal (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. Datorer föredrar att räkna med bas 2. Numret 123

10

skulle uttryckas på följande sätt: 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 Datorkonventionen uttrycker binära tal genom att använda 4, 8, 16, 32 eller till och med 64 binära siffror, även om de ledande siffrorna är 0.Detta beror också på hur datorer byggs internt. Eftersom termen siffra

avser en multipel av 10, a

binär siffra kallas en bit (en förkortning av binär siffra >). En byte består av 8 bitar. (Att ringa en binär siffra a byte-it verkade inte som en bra idé.) Minnet mäts vanligen i bitar (som rullar mäts i bakverkens doser). Med en så liten bas måste du använda ett stort antal bitar för att uttrycka siffror. Människor vill inte ha det krångel med att använda ett uttryck som 011110112 för att uttrycka ett sådant vardagligt värde som 123 10

. Programmerare föredrar att uttrycka tal genom att använda ett jämnt antal bitar. Det oktala systemet - som är baserat på 3 bitar - var det vanliga binära systemet i de tidiga dagarna av C. Vi ser en skiva av detta även idag - en konstant som börjar med en 0 antas vara oktal i C ++. Således kommer raden: cout << "0173 =" << 0173 << endl; ger följande utmatning: 0173 = 123

Dock har oktal nästan helt ersatt av

hexadecimal

-systemet, vilket är baserat på 4-bitars siffror.

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, så här: 123 = 7 * 16 1 + B (dvs 11) * 16 0

= 7B 16 Programmerare föredrar att uttrycka hexadecimala tal i multiplar med 4 hexadecimala siffror, även när den främsta siffran i varje fall är 0. Slutligen, vem vill uttrycka ett hexadecimalt tal som 7B 16 genom att använda ett prenumeration? Terminaler gör inte ens

support

prenumerationer. Även på en ordbehandlare är det ett drag att ändra teckensnitt till och från prenumerationsläge bara för att skriva två elaka siffror. Därför använder programmerare (inga dåre, de) konventionen att starta ett hexadecimalt tal med en 0x. Således blir 7B 0x7B. Med hjälp av denna konvention är hexadecimaltalet 0x7B lika med 123 decimaler medan 0x123 hexadecimalt är lika med 291 decimalt. Kodkoden cout << "0x7B =" << 0x7B << endl; cout << "0x123 =" << 0x123 << endl; ger följande resultat: 0x7B = 123 0x123 = 291

Du kan använda alla matematiska operatörer på hexadecimala tal på samma sätt som du skulle tillämpa dem på decimaltal.

Om du verkligen vill kan du skriva binära nummer i C ++ '14 med prefixet '0b'. Således blir 123 0b01111011.
Express binära nummer i C ++-dummies

Redaktörens val

Hitta hur du betalar webbplatser i online dating - dummies

Hitta hur du betalar webbplatser i online dating - dummies

Du får vad du betalar för I livet ingår Internet-dating webbplatser. Till skillnad från gratis webbplatser, med lönesidor har du inte huvudvärk på oändliga reklammeddelanden som skriker i ditt ansikte. Dessutom är omfattningen av täckning och tillgängliga funktioner bred och robust. Solid tillsyn tillhandahålls (för att gräva ut wackos) och lämpliga hinder ...

Dating för Dummies Cheat Sheet - dummies

Dating för Dummies Cheat Sheet - dummies

Dating behöver inte vara nervös, men det kräver förberedelse . Du måste göra en uppriktig själsökning så att du är redo att vara ärlig, öppen och uppmärksam. Du behöver en stark känsla för dina dejtingförväntningar så att du tydligt kan kommunicera vad du letar efter utan att ställa in baren så hög att ingen ...

Få passar för dating igen efter 50 - dummies

Få passar för dating igen efter 50 - dummies

Copyright © 2014 AARP All rights reserved. Du behöver inte vara frisk och frisk efter 50, men det hjälper säkert om du är. Om du inte är något av dessa saker, behöver du inte ge upp och tycker att det är för sent att komma dit. Många börjar träningsregler så sent som ålder ...

Redaktörens val

ÄR ett au pair rätt för din familj? - dummies

ÄR ett au pair rätt för din familj? - dummies

Det är viktigt att undersöka dina specifika familjeförhållanden för att avgöra om ett au pair är rätt barnomsorg för din familj. Du kanske bestämmer dig för att anställa ett au pair i stället för daghem, barnbarn eller barnpassare om du vill utsätta din familj för en ny kultur. Är ...

Online-verktyg för familjebudgetar - dummies

Online-verktyg för familjebudgetar - dummies

Vissa familjer kan tycka att den mest användbara aspekten av att bo i en värld med nästan oändliga onlineverktyg innebär att kunna budgetera för familjen med dessa verktyg. Följande tre onlinetjänster erbjuder familjer ett sätt att organisera familjeutgifter online, dela åtkomst till säkra konton och eliminera några av papperet ...

Barn som Online Entreprenörer - Dummies

Barn som Online Entreprenörer - Dummies

Levande i en digital värld tillåter barnen obegränsade möjligheter när det gäller entreprenörskap. Denna digitala tidsålder ger barnen en unik färdighetssats med möjlighet att dela den färdigheten med andra och lägga till "onlineföretagare" till listan över möjliga efterskolor och sommarjobb som finns tillgängliga för barn idag. Spelskapande Ett område där digitalt ...

Redaktörens val

Word 2007 Mail Merge - Steg 3: Byggnadsrekord - dummies

Word 2007 Mail Merge - Steg 3: Byggnadsrekord - dummies

Efter att ha definierat de fält du behöver för din Word 2007-postfusion, är nästa steg att slutföra adresslistan. För att göra det skapar du en lista över poster genom att ange data för varje fält i varje post. Detta händer i dialogrutan Ny adresslista. Kom ihåg att fält är kolumner och ...

Word 2007 Mail Merge - Steg 5: Final Merge - dummies

Word 2007 Mail Merge - Steg 5: Final Merge - dummies

Med sammanfogningsfälten infogad i huvudversionen av Word 2007-dokumentet och adresslistan stannar, är du redo att starta din mailfusion! Spara huvuddokumentet. Klicka på knappen Förhandsgranska resultat. Fälten i huvuddokumentet försvinner! De ersätts av information från den första posten i adresslistan. Så här ...