Hjem Personlig finansiering Ekspress binære tall i C ++ - dummies

Ekspress binære tall i C ++ - dummies

Innholdsfortegnelse:

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

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

C ++-variablene lagres internt som såkalte binære tall. Binære tall lagres som en sekvens av 1 og 0 verdier kjent som biter. Det meste av tiden trenger du ikke å håndtere hvilke spesielle biter du bruker til å representere tall. Noen ganger er det imidlertid praktisk og praktisk å tinker med tall på bitnivået, slik at C ++ gir et sett med operatører for det formålet.

De såkalte bitwise logiske operatørene opererer på sine argumenter på bitnivå. For å forstå hvordan de virker, undersøk først hvordan datamaskiner lagrer variabler.

Desimalnummersystemet

Tallene du har kjent med fra det tidspunktet du først kunne telle på fingrene, er kjent som desimalnumre fordi de er basert på nummer 10. Generelt uttrykker programmereren C ++-variabler som desimaltall. Dermed kan du spesifisere verdien av var som (si) 123, men vurder implikasjonene.

Et tall som 123 refererer til 1 * 100 + 2 * 10 + 3 * 1. Alle disse basenumrene - 100, 10 og 1 - er krefter på 10.

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

123 uttrykt slik:

123 = 1 * 10 < 2 + 2 * 10 1 + 3 * 10 0 Husk at

noe tall til nullstrømmen er 1. Andre tallsystemer

Vel, ok, bruk 10 som grunnlag (eller

base ) av vårt telesystem skyldes trolig de 10 menneskelige fingrene, de opprinnelige telleverktøyene. En alternativ base for et telesystem kan like like har vært 20.

Hvis vårt nummereringsskjema hadde blitt oppfunnet av hunder, kan det godt være basert på 8 (ett siffer i hver pote er ute av syne på baksiden av benet). Matematisk ville et slikt

oktal system ha virket like bra: 123

10 = 1 * 8 2 + 7 * 8 1 < + 3 * 8 0 = 173 8 De små 10 og 8 her refererer til nummereringssystemet, 10 for desimal (base 10) og 8 for oktal (base 8). Et tellingssystem kan bruke en hvilken som helst positiv base. Det binære talesystemet

Datamaskiner har i hovedsak to fingre. Datamaskiner foretrekker å telle ved bruk av base 2. Tallet 123

10

vil bli uttrykt på denne måten: 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 Datakonvensjon uttrykker binære tall ved å bruke 4, 8, 16, 32 eller til og med 64 binære tall, selv om de ledende tallene er 0.Dette er også på grunn av måten datamaskiner bygges internt på. Fordi uttrykket siffer

refererer til et flertall av 10, er et

binært tall kalt en bit (en forkortelse av binærtall >). En byte består av 8 biter. (Kaller et binært tall a byte-it virket ikke som en god ide.) Minne måles vanligvis i byte (som ruller måles i enheter av bakerens dusin). Med en så liten base må du bruke et stort antall biter for å uttrykke tall. Menneskene vil ikke ha bryet med å bruke et uttrykk som 011110112 for å uttrykke en slik verdslig verdi som 123 10

. Programmører foretrekker å uttrykke tall ved å bruke et jevnt antall biter. Det oktale systemet - som er basert på 3 biter - var standard binært system i de tidlige dager av C. Vi ser en vestige av dette selv i dag - en konstant som begynner med en 0 antas å være oktal i C ++. Dermed er linjen: cout << "0173 =" << 0173 << endl; produserer følgende utgang: 0173 = 123

Imidlertid er oktal nesten fullstendig erstattet av

hexadecimal

-systemet, som er basert på 4-bits sifre.

Hexadecimal bruker de samme tallene for tallene 0 til 9. For tallene mellom 9 og 16 bruker hexadecimal de første seks bokstavene i alfabetet: A for 10, B for 11, og så videre. Således blir 123

10 7B 16, slik: 123 = 7 * 16 1 + B (dvs. 11) * 16 0

= 7B 16 Programmerne foretrekker å uttrykke heksadesimale tall i multipler med 4 heksadesimale siffer selv når det ledende sifferet i hvert tilfelle er 0. Til slutt, hvem ønsker å uttrykke et heksadesimalt tall som 7B 16 ved å bruke et abonnement? Terminaler gir ikke engang

support

abonnementer. Selv på et tekstbehandlingsprogram, er det en dra for å endre skrifttyper til og fra abonnementsmodus bare for å skrive to elendige sifre. Derfor bruker programmerere (ingen idioter, de) konvensjonen om å starte et heksadesimalt tall med en 0x. Dermed blir 7B 0x7B. Ved hjelp av denne konvensjonen er det heksadesimale nummer 0x7B lik 123 desimal mens 0x123 heksadesimal er lik 291 desimal. Kodestykket cout << "0x7B =" << 0x7B << endl; cout << "0x123 =" << 0x123 << endl; gir følgende utgang: 0x7B = 123 0x123 = 291

Du kan bruke alle de matematiske operatørene på heksadesimale tall på samme måte som du vil bruke dem til desimaltall.

Hvis du virkelig vil, kan du skrive binære tall i C ++ '14 ved hjelp av prefikset '0b'. Således blir 123 0b01111011.
Ekspress binære tall i C ++ - dummies

Redaktørens valg

Hvordan lage Baseball Practice Fun - Dummies

Hvordan lage Baseball Practice Fun - Dummies

Som baseball trener må du ikke bare lære laget ditt grunnleggende i spillet, må du lære disse grunnleggende morsomme, slik at spillerne blir interessert og engasjert. Bruk tipsene i følgende liste for å gjøre baseballøvelsen morsom: Sørg for mange repetisjoner for hvert barn. Stopp treningen kort ...

Basisspillers ansvar i Baseball - dummies

Basisspillers ansvar i Baseball - dummies

Baseball trener er ikke bare ansvarlige for lagspillet som en hel, men for coaching spillere når de når første og tredje base i løpet av et baseballspill. Ansvaret for å coaching hver base er forskjellig. Hva en første basissjåfør gjør: Oppfordrer smeten til å kaste ned første baseline på infield hits. ...

Hvordan fantasy baseball ligaene blir scoret - dummies

Hvordan fantasy baseball ligaene blir scoret - dummies

Fantasy baseball har tre hovedspillformater som bestemmer hvordan ligaen din score punkter. Spillformatene for fantasybaseball er Rotisserie, Head-to-Head One Win og Point System. Hvert format blir scoret avhengig av ligaoppsettet. For eksempel vil 5 × 5 liga score poeng eller gevinster / tap på fem forhåndsvalgte treffstatistikk, samt fem ...

Redaktørens valg

Praktiserer dag til dag, uformell oppmerksomhet - dummies

Praktiserer dag til dag, uformell oppmerksomhet - dummies

Kan trene det når som helst. Uformell oppmerksomhet meditasjon er når du trener oppmerksomhet uten å skille ut en spesiell tid for det. Her er ti eksempler på uformell oppmerksomhet: Mindful kommunikasjon - Når du snakker eller hører på noen andre, blir du klar over lyden av ...

Forbli lekfull og lyshjerte når du praktiserer Mindfulness - dummies

Forbli lekfull og lyshjerte når du praktiserer Mindfulness - dummies

En nydelig holdning til å ha oppmerksomhet og Livet generelt er lekenhet og lethed. Hvis en meditasjon ikke virker for deg første gang eller ikke føles riktig for deg, ikke vær panikk, men tenk på opplevelsen som et eksperiment som du kan prøve igjen senere. Tilnærming oppmerksomhet som du ville et nytt spill eller ...

Redaktørens valg

Valg av resolusjonsstørrelse på et Canon EOS Rebel T3-serie kamera - dummies

Valg av resolusjonsstørrelse på et Canon EOS Rebel T3-serie kamera - dummies

For å bestemme seg for en Kvalitetsinnstilling (eller bildeoppløsningstørrelse) for Canon Rebel T3 eller T3i, den første avgjørelsen du må gjøre er hvor mange piksler du vil at bildet skal inneholde. Piksler er de små firkantede fliser hvorfra alle digitale bilder er laget; piksel er kort for bildeelement. Hvis din ...

Hvordan du lager videobilder på Rebel T7i / 800D - dummies

Hvordan du lager videobilder på Rebel T7i / 800D - dummies

Videoopplastingsfunksjonen på Canon EOS Rebel T7i / 800D fanger korte videoklipp som er sydd i et enkelt opptak, kalt et videoalbum. Du kan stille klippelengden til 8, 4 eller 2 sekunder lang (men alle klippene i et album må ha samme lengde). Med tanke på individets korthet ...