Heksadesimale notasjon på den enkle måten på din Raspberry Pi

February 10  by Eliza

Hver programmerer og hardware designer bruker heksadesimale notasjon for en enkel grunn: Det er enkelt, langt enklere enn alternativet. Den eneste ulempe er at det er en svært liten læringskurve, så liten, faktisk, at du kan tenke på det som en lærings bump.

Når barn blir lært opp til å formere seg, sier tre ganger fire, for å få dem i gang, de er ofte beskjed om å skrive ned en gruppe på fire merkene. Så de får beskjed om å gjenta den gruppen tre ganger og til slutt legger opp alle merkene på papiret for å få svaret. Som er ment å få dem den grunnleggende ideen, men som en langsiktig strategi, er det en blindvei.

Hva en datamaskin gjør for hex

Inne hver datamaskin, er informasjon som er lagret som en samling av binære biter: det vil si en samling som du kan representere ved å skrive ned en liste over nuller og enere til å representere hver stat. Inne i maskinen er ikke en sekvens av nuller og enere. Det er faktisk et system av brytere som kan være åpen eller lukket.

For å gjøre livet enklere, når du utformer en datamaskin, er disse individuelle biter arrangert i grupper på åtte og kalt byte s. Så hver byte består av åtte bits, men hva betyr de? Vel, de kan bety absolutt alt du vil ha dem til å bety.

Avhengig av i hvilken sammenheng du finner dem, kan du tolke byte som tall, tekst, data instruksjoner, eller mønstre av lys for å slå på. Til datamaskinen, er de alle det samme, bare en samling av bits. Det er en viktig ting å huske. Alt en datamaskin ikke er manipulere biter: Folk legger en konstruksjon eller mening på disse bitene.

Hvordan mennesker ser ting

Uansett hva de bitene representerer, må du ha noen måte å representere dem, og det enkleste er å skrive ned strengen av nuller og enere. En spesifikk byte kan være representert ved si 01100011. Det er litt av en vanskelig ting å takle. For en start, er det en lang sekvens og det er svært lite koding skjer.

Det er, kan hver plass ved at representasjonen bare være en av to ting. Det er flott hvis du er en datamaskin, men det er ikke hvordan det menneskelige sinn fungerer. Folk jobber best når det er noen chunking skjer: det vil si når sekvensen er uttrykt med en kortere lengde, men mer variasjon på hva som kan være på hvert sted.

Den innlysende løsning er å gjøre denne sekvens til et desimaltall ved at hver bit representerer en potens av to.

Heksadesimale notasjon på den enkle måten på din Raspberry Pi

Begynn på høyre side, har du den første bit eller bit null representerer to til makten til null eller ett. Så hvis lengst til høyre bit er en, som bidrar med en en til hele tall. Du kan deretter flytte til venstre, og den andre biten representerer to til makten til en, eller to, og så videre nedover listen, og endte opp med venstre mest bit representerer to til makten til syv eller 128.

Så du legger sammen alle bitene i at byte som har en i dem i henhold til deres plass verdi for å få det endelige antallet 99. Dette er en desimal representasjon av det litt mønster. Så har du det sprekker? Nei, det krever ganske mye mental gymnastikk.

Det motsatte operasjonen, komme fra desimal representasjon til litt mønster, er definitivt en blyant-og-papir jobb, men du er halvveis der for å gjøre det enkelt.

Gjør hex lett for oss mennesker

Overvei om byte i to - det vil si to grupper på fire biter. En gruppe på fire biter er heller amusingly kalles en nibble, ikke helt en byte. I binær, dette ser allerede mye enklere. Du ville skrive 0110 0011.

For de fleste mennesker, som plass i midten gjør det så mye lettere å holde plassen. Nå når du tar hver av disse to gruppene og bruk samme desimal konvertering til det som du gjorde med den forrige byte, du får nummer 63.

Som er lett å huske, og du kan gjøre det ganske enkelt i hodet ditt. Det er bare fire add-ups for å gjøre, og de er bare 8 + 4 + 2 + 1 på det verste. Faktisk er den første gruppe var 4 + 2 = 6, og den andre 2 + 1 = 3 Stor, som var lett!

Heksadesimale notasjon på den enkle måten på din Raspberry Pi


Men vent, hva skjer når du har et resultat som er mer enn 9 i en gruppe? Tenk deg at du hadde 0000 1010. Det ville gi deg null for den første gruppen og 10 for den andre. Nummeret du ville ha ville være 010.

Du ville ikke vite om dette var en tre-bite nummer 0000 0001 0000, eller en to-bite tall, 0000 1010. For å komme rundt dette problemet, trenger du ikke bruke tall til å representere verdier større enn ni. I stedet bruker du bokstaver.

Så hvis du får til en verdi av ti når du legger opp din nibble, kaller du det A eller faktisk en. Hvis du får til elleve, kaller du det B og så videre opp alfabetet til du kommer til femten, som er F. På den måten kan du holde deg til én posisjon i nummeret ditt som representerer fire biter eller en småspise. Du har forkortet sekvenser lengde og du delvis opp til en god grad.

Heksadesimale notasjon på den enkle måten på din Raspberry Pi


Det eneste problemet er at du må lære seks nye numre og også lære å indikere at du har et heksadesimalt tall og ikke en desimal ett. Den mest brukte konvensjonen er å prefikset en hex tall med null (0) x, som i 0x21. Dette viser at det er en hex tall som representerer bitmønster 0010 0001. Noen systemer bruker en ampersand (&) som prefiks i stedet.

Lær seks nye tall å mestre hex

Ikke prøv og lære alle de nye symboler på en gang: Ta dem en om gangen. F er lett. Det er alle de. A er bare en gjentakelse 1010, og C er de to øverste bits satt på 1100. Bare lære de tre til å begynne med. Da de andre er lett.

B er bare en mer enn A (1,010 + 1 = 1,011), og D er en mer enn på C (1,100 + 1 = 1,101). Endelig er E én mindre enn F (1111-1 = 1,110).