Bakke Skrevet 27. mai 2007 Del Skrevet 27. mai 2007 Heksadesimal (også kjent som sekstentallsystemet) er et tall system med 16 ulike siffer, det benytter 0 - 9 fra det desimale tallsystemet, og deretter A - F. A = 10, B = 11, osv. Merk at C, C++ og andre språk med lignende syntaks (f.eks Java) prefikser heksadesimale tall med "0x" (uten gåseøyne), f.eks 0x5F. Datamaskiner liker heksadesimale tall siden bits og bytes er svært lett å representere med dette tallsystemet. En byte er lik FF, og FF er lik 255(desimalt). Telle i heksadesimal Hvordan vi teller i det desimale tallsystemet: Vi teller først fra 0 til 9, så begynner vi på nytt med 1 tall først, 10, 11, 12 osv. Dette fortsetter helt opp til tallet 19, da begynner vi på nytt med tallet 2 først, 20, 21, 22 osv. Håper dere ser systemet. Vis du lurer på hvorfor vi begynner med 1 først og ikke 0, er dette fordi da vi begynner å telle opp til 9, bruker vi egentlig 0. Null har ingen verdi, så det er ikke noe poeng å sette den først. Så ville det jo og sett litt dumt ut å telle slik: 00, 01, 02, 03 osv. Hvordan vi teller i det heksadesimale tallsystemet: Dette gjør vi helt likt som i det desimale tallsystemet, bare vi ikke teller opp til 9, men F (15). Altså vi teller fra 0 til F, etter dette setter vi 1 først. Da vi kommer til 1F, setter vi tallet 2 først, og fortsetter. Eksempel: Hex: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F Des: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 Gjøre desimal om til heksadesimal Dere har sikkert dividert med rest. Det vil si at dere sitter igjen med et helt tall og en rest. Måten vi går fram på for å gjøre desimal om til heksadesimal: Vi deler tallet på 16 (siden tallsystemet har en base på 16), og noterer resten. Deretter tar vi tallet vi fikk fra divisjons stykket og deler det på 16, så noterer vi resten. Og slik fortsetter vi. La oss gjøre 95 om til heksadesimal: 95:16 = 5, rest = F (15) 5:16 = 0, rest = 5 95 (desimal) = 5F (heksadesimal) Som du kansje ser, lager vi resultatet ut fra resten. Merk og at om du sitter igjen med et tall som er mindre en 16, blir det tallet resten. Som: 5:16 = 0, rest 5. Gjøre heksadesimal om til desimal Her bruker vi bare formelen: siffer * tallsystem ^ posisjon. Merk at posisjon begynner på 0. La oss gjøre 5F om til desimal: 5 * 16 ^ 1 + F(15) * 16 ^ 0 = 5 * 16 + 15 * 1 = 80 + 15 = 95 Noen ord til sist Om det er noe som er feil kan du godt ta det over pm eller poste så skal jeg rette det snarest, eller så er det bare å stille spørsmål om du lurer på noe. Hvis noen føler for det kan de godt poste denne andre plasser eller bruke den på en hjemmeside, så lenge ingenting blir endret og navne mitt kommer med Magnus Hauge Bakke 1 Lenke til kommentar
Gjest Slettet+142 Skrevet 27. mai 2007 Del Skrevet 27. mai 2007 Rart at jeg faktisk tidligere idag tenkte på å spørre deg om å lage en slik guide Takk! Skal begynne å lese på den nå Lenke til kommentar
Jaffe Skrevet 29. mai 2007 Del Skrevet 29. mai 2007 (endret) Nok en fin guide om tallsystemer. Du kunne kanskje lagt til hvor lett det er å gå fra hex til bin og bin til hex? Dette er veldig lett om man "lærer" seg å telle til 15 i binær. C0FFEEh om til binær: C 0 F F E E 1100 0000 1111 1111 1110 1110 Like lett å gå andre veien: 11011110101011011011111011101111b om til hex: Vi deler tallet opp i deler på 4 bit: 1101 1110 1010 1101 1011 1110 1110 1111 D E A D B E E F EDIT: Du kan forresten legge til at man også bruker h som suffiks etter tallet for å indikere at det er heksadesimal i en del språk (for det meste assembly.) Endret 29. mai 2007 av Jaffe Lenke til kommentar
Bakke Skrevet 30. mai 2007 Forfatter Del Skrevet 30. mai 2007 Jeg skrev at vi bruker 0x som suffiks i f.eks C, C++, Java eller lignende. Men kan sikkert slenge på at vi bruker h i f.eks assembly. Skal og legge til hvordan du gjør om til binær og omvendt, fikser dette i morgen Lenke til kommentar
Sn0wman Skrevet 1. august 2007 Del Skrevet 1. august 2007 Flott guide til Hex tallsystemet. Personlig er jeg fan av å bruke posisjonsverdier når jeg forklarer tallsystemer, det setter ting i et litt enklere perspektiv. 1; 10;100; mot 1;16;256 Lenke til kommentar
Looke Skrevet 7. november 2012 Del Skrevet 7. november 2012 Takker for denne guiden var til stor hjelp her nå ! Lenke til kommentar
slacky Skrevet 15. januar 2013 Del Skrevet 15. januar 2013 (endret) Hex-fargekode er noe som aktivt brukes, samt kutter ned lengden i forhold til f. eks RGB. Det er utrolig lett å konvertere mellom disse da de har en direkte sammenheng, her har du et eksempel (i python): # -*- coding: utf-8 -*- def rgb_to_hex(r,g,b): #Forenkling: integer til hex format %x..: rgb = (r,g,b) print '%x%x%x' % rgb def rgb2hex(r,g,b): hexchars = "0123456789ABCDEF" print hexchars[r / 16] + hexchars[r % 16] \ + hexchars[g / 16] + hexchars[g % 16] \ + hexchars[b / 16] + hexchars[b % 16] rgb_to_hex(255,210,255) rgb2hex(255,210,255) Kort forklaring... Module (%) er brukt for å hente "resten". EG, for å konvertere #FFFFFF til RGB må vi gjøre slik: F = 15 F * 16 + F = 255 Andre veien... F = 15 = 255 / 16 F = 15 = 255 % 16 <------ Henter "resten" 255=FF Endret 15. januar 2013 av warpie Lenke til kommentar
Smh94 Skrevet 1. september 2013 Del Skrevet 1. september 2013 Hei! Driver med det heksadesimale tallsystemet i matte nå, men vet ikke helt om jeg har forstått det rikitig, og kommer ikke helt videre i oppgaven eller. Har prøvd å tegnet ned en tallinje for å forstå det bedre. Har kommet til: FA - FB - FC - FD - FE - FF - 160 (?) - 161 - 162 - 163 - 164 - 165 - 166 - 167 -168 -169 .. er dette riktig? Og hvordan fortsetter den nå? Har søkt litt rundt på nettet, men står bare om hvilken symboler som brukes, og det har jeg forsåvidt skjønt. Håper på hjelp! Lenke til kommentar
stelar7 Skrevet 1. september 2013 Del Skrevet 1. september 2013 FF i hex er 255 i decimal Lenke til kommentar
jonny Skrevet 1. september 2013 Del Skrevet 1. september 2013 Hei! Driver med det heksadesimale tallsystemet i matte nå, men vet ikke helt om jeg har forstått det rikitig, og kommer ikke helt videre i oppgaven eller. Har prøvd å tegnet ned en tallinje for å forstå det bedre. Har kommet til: FA - FB - FC - FD - FE - FF - 160 (?) - 161 - 162 - 163 - 164 - 165 - 166 - 167 -168 -169 .. er dette riktig? Og hvordan fortsetter den nå? Har søkt litt rundt på nettet, men står bare om hvilken symboler som brukes, og det har jeg forsåvidt skjønt. Håper på hjelp! Nei, det er feil, tallinjen går slik: FA - FB - FC - FD - FE - FF - 100 - 101 - 102 - 103 - 104 - 105 - 106 - 107 - 108 - 109 - 10A osv. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå