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 2024

Video: Technology Stacks - Computer Science for Business Leaders 2016 2024
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

Vanlige medikamenteffekter for legeassistenteksamen - dummies

Vanlige medikamenteffekter for legeassistenteksamen - dummies

Bli kjent med vanlige bivirkninger for legeassistenteksamen (PANCE). Den gjennomsnittlige personen over 60 år tar omtrent ni reseptbelagte medisiner og ser minst fire forskjellige helsepersonell. Potensialet for noen til å oppleve bivirkningene av disse medisinene er enorm, og det er potensialet for signifikante legemiddelinteraksjoner. ...

Epidemiologiske studier dekket av legeassistenteksamen - dummies

Epidemiologiske studier dekket av legeassistenteksamen - dummies

For legeassistenteksamen (PANCE) du bør være oppmerksom på forskjellene mellom typer epidemiologiske studier. Det første trinnet er å gjenkjenne om studiet er en retrospektiv studie eller en prospektiv studie: Retrospektiv: En retrospektiv studie betyr at du ser på fortiden for å finne ut hva som skjedde. For eksempel, en ...

Forhold som påvirker pleura dekket på legeassistenteksamen - dummies

Forhold som påvirker pleura dekket på legeassistenteksamen - dummies

Du kan se Spørsmål om legeassistenteksamen om forhold som påvirker pleura. Du må vurdere evaluering og behandling av pleural effusions, pneumothorax og pleurisy. Væske rundt lungene: Pleural effusjon Normalt er pleura et tomt rom; en pleural effusjon er ganske enkelt væske som opptar den plassen. Pleural ...

Redaktørens valg

Slik setter du automatiske varsler på LinkedIn - dummies

Slik setter du automatiske varsler på LinkedIn - dummies

Sikkert, du kan gjøre alt fotverket ved å gå til LinkedIn hjemmesiden og ser deg rundt for å se hvilke meldinger eller endringer som har skjedd. Den sanne kraften til å holde kontakten, har imidlertid LinkedIn, kontakter deg automatisk med den informasjonen du trenger for å holde deg informert. Klikk på Administrer-koblingen ved siden av Personvern og innstillinger ...

Tips for å administrere dine LinkedIn Post-interaksjoner - dummies

Tips for å administrere dine LinkedIn Post-interaksjoner - dummies

Når du klikker Publiser på LinkedIn, kan du tenke at jobb er ferdig, men det er bare begynt. Etter hvert som flere og flere leser innlegget ditt, kan de samhandle med innlegget og med deg som forfatter. Her er noen ting å huske på etter at du har publisert et innlegg: Overvåk statistikken. Når du ...

Forstå LinkedIn Pulse - dummies

Forstå LinkedIn Pulse - dummies

Har du sjekket ut LinkedIn Pulse ennå? Tenk deg om du leser en avis som bare viste deg artikler som har betydning for deg. (For det hele, for mange av dere, tenk på de dagene du kanskje har lest en avis.) Tilpassede nyheter er mulige, og på LinkedIn kalles det LinkedIn Pulse. Alt du trenger å gjøre for å ...

Redaktørens valg

Hva Dragon NaturallySpeaking kan gjøre for deg - dummies

Hva Dragon NaturallySpeaking kan gjøre for deg - dummies

Noe om å diktere til en datamaskin vekker alle slags urealistiske forventninger hos mennesker. Hvis du forventer at du skal servere deg frokost på sengen, har du lykke til. Denne artikkelen ble ikke skrevet ved å si "Computer, skriv en bok om NaturallySpeaking. "Forfatteren måtte diktere det ord for ord, akkurat som hun ville hatt ...

Når Start ikke starter i NaturallySpeaking - dummies

Når Start ikke starter i NaturallySpeaking - dummies

Når du gir kommandoen "Start" til Dragon NaturallySpeaking, du sier "Start America Online" eller "Start Microsoft Works" eller "Start Quicken", og programmet skal åpnes. Men hva hvis det ikke gjør det? Hva er greia? Start-kommandoen starter et program som er installert på maskinen din, og har enten et snarveisikon på ...

Når NaturallySpeaking Menykommandoer ikke fungerer - dummies

Når NaturallySpeaking Menykommandoer ikke fungerer - dummies

Når du gir en kommando til NaturallySpeaking, for eksempel "Klikk" og ingenting skjer, det sannsynlige problemet er at menyen Bruk menyer som er kompatible med skjermlesere, ikke er merket av. For å sjekke det: Velg Verktøy → Valg i vinduet NaturallySpeaking. Det er ikke noe poeng å fortelle deg hvordan du får tilgang til dette med stemmen, for det er akkurat ...