Hvis det bare er at omsætte fra hex-tal til almindelige decimale tal er det ikke så gevaldig svært. Du skal blot huske din 16-potenser tabel:
16 i 0\'te = 1 16 i 1\'ste = 16 16 i 2\'den = 256 16 i 3\'die = 4096 16 i 4\'de = 65536 16 i 5\'te = 1048576 ...
for at konvertere fra hex-tal til decimalt ganger du så bagerste ciffer med 16 i 0\'te. næstbagerste med 16 i 1\'ste, osv. tilsidst lægger du alle tallene sammen
for at konvertere fra decimalt til hex-tal dividerer du først med den største 16 i ?\'ende der er mindre end eller lig med tallet heltalsresultatet er det forreste (venstreste) hex ciffer. næste ciffer får du ved at dividere næste lavere 16-potens op i resten, osv osv.
En anden (og endnu lettere mulighed er at bruge den lommeregner der følger med windows: start knap / programmer / tilbehør / lommeregner. i menuen \"vis\" vælger du videnskablig. foven er der en stribe radio buttons der hedder: hex (for hex-tal), Dec (for decimale tal), Oct (for oktale tal) og Bin (for binære tal) enhver konvertereing kan så gøres med: 1) vælg radioknap for det talsystem du vil konverter væk fra. fx Hex 2) indtast det tal der skal konverteres. fx 9ABF 3) vælg radioknap for det talsystem du vil have tallet i. fx Dec 4) Så står den kobverterede værdi i displayet. fx 39615
ps: for at cut&paste fra lommeregneren skal du bruge \"rediger\" menyen.
Hvid det kun er imellem binært og hex der skal konverteres kan det gøres endnu nemmere i hovedet. Hvert hex ciffer svare til præcis 4 binære cifre:
hex 0 = bin 0000 hex 1 = bin 0001 hex 2 = bin 0010 ... hex E = bin 1110 hex F = bin 1111
og så skal du bare substituere de 4 binære cifre for hvert hex ciffer: 9ABF = 1001 1010 1011 1111 = 1001101010111111 omvendt opdeler du i grupper på 4 binære cifre (læg evt nuller ind forrest for at få 4 til at gå op, og erstatter hver gruppe med et hex ciffer: 100111001010001 = (0)100 1110 0101 0001 = 4E51
Nu er jeg ligepludselig forvirret. Og interesseret. Hvorfor 16, og hvorfor fire gange det med 16, hvad gør man med de tal der kommer med de 16 i 1\'ste osv osv ?!?
mystart > fordi positionen på de enkelte cifre i et tal bestemmer hvilken radix-potens det ciffer tæller med. fx: det decimale tal 1234 for decimale tal er radix = 10
så ciffer \"4\" tæller som 4 gange 10 i nulte = 4 * 1 = 4 ciffer \"3\" tæller som 3 gange 10 i første = 3 * 10 = 30 ciffer \"2\" tæller som 2 gange 10 i anden = 2 * 100 = 200 og ciffer \"1\" tæller som 1 gange 10 i tredie = 1 * 1000 = 1000
Præcis samme regler gælder for radix 16, eller radix 8, eller radix 117, ...
Ps: Er der andre end mig der ønsker expertens textbox gav mulighed for at specificere at et antal linier skal skrives med fast-bredde font?
mystart > Hum. Det bedste jeg kan give dig er et radis er det tal man i et givet talsystem oplæfter i potens for at få vægten af de enkelte cifre. I hex-tal er radix = 16. I Decimale tal er radix = 10. I oktale tal er radix = 8. osv men den definition kører jo i ring :-( beklager.
Måske machholdt kan give dig et ordentligt svar. Han har det i skolen for tiden :-))
Gang det ud (som ovenfor), og læg det sammen, og du får ikke overraskende 423.
I det normalt - decimale - talsystem kan du kun have tallene fra 0 til 9 på hver plads. Når du har brug for mere, må du tage næste plads i brug. Man siger også at grundtallet er 10 (0,1,2,3,4,5,6,7,8,9 = 10 tal).
I det hexadecimale talsystem har du grundtallet 16 (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F = 16)
Du kan med andre ord skrive tallene fra 0 til 15 (decimalt) og kun bruge en position. Tallet 13 skrives som D. Først når du kommer til tallet 16 (decimalt) skal du bruge en plads til.
I det decimale talsystem er det bageste tal som nævnt ovenfor enere, det næstbageste er tiere, det tredje bageste er hundrede (10 gange 10) osv.
I de hexadecimale talsystem er det bageste tal enere, det næstbageste er 16\'ere, det tredje bageste er 256\'ere (16 *16), det fjerde bageste er 4096\'ere (16 * 16 * 16) o.s.v.
Tallet 16 (decimalt) er med andre ord 10 (hexadecimalt), og tallet 256 (decimalt) er 100 (hexadecimalt), 4096 (decimalt) er 1000 (hexadecimalt) osv.
Med andre ord skal du bare gange tallene med (bagfra) 1, 16, 256, 4069, 65536, 1048576 osv. (grundtallene)
Tallet 3FA (hexadecimalt selvfølgelig) er med andre ord:
3 gange 256 = 768 F (15) gange 16 = 240 A (10) gange 1 = 10
Sum; 1018
Omvendt hvis du skal lave et tal om til hexadecimalt fra decimalt - f.x. tallet 123456 (decimalt)
Det største hexadecimalt grundtal der går op i 123456 er 4096. Det gør det 1 hel gang (med en rest).
Første tal er 1 (hex)
123456 - (1 gange 65536) = 57920 (rest decimalt)
et næste hexadecimalt grundtal (4096) kan 14 hele gange (hex E) går op i 57920, med en rest.
57920 - (E (14) gange 4096 ) = 57920 - 57344 = 576 (rest decimalt)
Det næste hexadecimalt grundtal (256) kan 2 hele gange (hex 2) går op i 576, med en rest.
576 - (2 gange 512) = 64 (rest decimalt)
Det næste hexadecimale grundtal (16) kan 4 gange gå op i 64, med rest nul.
64 - (4 gange 16) = 0 (ingen rest)
Det sidste hexadeximale grundtal (1) går naturligivis nul gange op i resten (nul)
Med andre ord er 123456 (decimalt) = 1E240 (hexadecimalt).
\"Det største hexadecimalt grundtal der går op i 123456 er 4096. Det gør det 1 hel gang (med en rest).\"
skulle have heddet
\"Det største hexadecimalt grundtal der går op i 123456 er 65536. Det gør det 1 hel gang (med en rest).\"
Sorry, sorry!
/Rob
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.