Avatar billede machholdt Nybegynder
22. november 2000 - 21:22 Der er 21 kommentarer og
2 løsninger

Hex-tal??

Jeg har et problem jeg har enormt svært ved ast lære at omsætte til hex-tal.. og omsætte fra hex-tal!!

Nogen der ved noget om det?? Som jeg måske kan forstå?
Avatar billede the_netfreak Nybegynder
22. november 2000 - 21:34 #1
næ... men du akn se alle farverne på http://www.dagensjoke.dk/palette.asp

~> the..netfreak

<www.zQueek.Dk>
<admin@zQueek.Dk>
Avatar billede machholdt Nybegynder
22. november 2000 - 21:44 #2
Det var lissom ikk det jeg skulle bruge det til.. Jeg skal bare omsætte fra binært til hexdecimal!!! og omvendt!
Avatar billede jakoba Nybegynder
22. november 2000 - 22:01 #3
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.

mvh  JakobA
Avatar billede jakoba Nybegynder
22. november 2000 - 22:13 #4
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

mvh JakobA
Avatar billede machholdt Nybegynder
22. november 2000 - 22:17 #5
Jeg fatter ikke måden du gør det på med almindeligge decimaltal til hex.. og omvendt!!  Men binært der er det helt klart!!

16512 prøv at lave det om til hex.. Og skriv din fremgangsmåde helt ud.. Du kan sagtens få flere point hvis det er det!!
Avatar billede mystart Nybegynder
22. november 2000 - 22:18 #6
Sjet, helt klart fedt
Avatar billede machholdt Nybegynder
22. november 2000 - 22:18 #7
Og det går ikke at jeg bruger lommeregneren da jeg skal aflever det i en opgave, og forklare hvordan jeg gør!!
Avatar billede machholdt Nybegynder
22. november 2000 - 22:19 #8
Mystart >> Hvad mener du??
Avatar billede mystart Nybegynder
22. november 2000 - 22:20 #9
Gå ind i lommeregneren
Vælg videnskabeligt...
Vælg \"dec\"...
skriv det tal du skal have omsat...
Tryk på \"hex\" så har du hex-koden ...
Easy !

/ MyStart
Avatar billede mystart Nybegynder
22. november 2000 - 22:21 #10
Gå ind i lommeregneren
Vælg videnskabeligt...
Vælg \"dec\"...
skriv det tal du skal have omsat...
Tryk på \"hex\" så har du hex-koden ...
Easy !

/ MyStart
Avatar billede mystart Nybegynder
22. november 2000 - 22:21 #11
Jeg glemte at vælge \"svar\" sorry
Avatar billede machholdt Nybegynder
22. november 2000 - 22:22 #12
Jeg må ikke bruge lommeregneren , for det kan jeg jo ikke forklare hvordan jeg har udregnet det.
Avatar billede mystart Nybegynder
22. november 2000 - 22:24 #13
Du skal have omsat fra binært til hex ?
Avatar billede shaft Nybegynder
22. november 2000 - 22:27 #14
Tag f.eks følgende binære tal:
10111101110100011
Del det binære tal op i grupper af 4 bits fra højre mod venstre:
0001 0111 1011 1010 0011

Hver gruppe skal nu omsættes hexadecimalt:

0001 0111 1011 1010 0011
\\/  \\/  \\/  \\/  \\/
1    7    B    A    3

Du har nu det binære tal i hex dvs: 17BA3
Følgende tabel kan måske hjælpe dig:

|  Dec  |  Bin  |  Hex  |
--------------------------
|  0  |    0  |  0  |
--------------------------
|  1  |    1  |  1  |
--------------------------
|  2  |    10  |  2  |
--------------------------
|  3  |    11  |  3  |
--------------------------
|  4  |  100  |  4  |
--------------------------
|  5  |  101  |  5  |
--------------------------
|  6  |  110  |  6  |
--------------------------
|  7  |  111  |  7  |
--------------------------
|  8  |  1000  |  8  |
--------------------------
|  9  |  1001  |  9  |
--------------------------
|  10  |  1010  |  A  |
--------------------------
|  11  |  1011  |  B  |
--------------------------
|  12  |  1100  |  C  |
--------------------------
|  13  |  1101  |  D  |
--------------------------
|  14  |  1110  |  E  |
--------------------------
|  15  |  1111  |  F  |
--------------------------
Avatar billede jakoba Nybegynder
22. november 2000 - 22:31 #15
16512 prøv at lave det om til hex..

16 i 0\'te  =        1
16 i 1\'ste =        16
16 i 2\'den =      256
16 i 3\'die  =    4096

16512 / 4096  giver  4  med rest 128        4
    128 /  256  giver  0  med rest 128        40
    128 /    16  giver  8  med rest    0        408
        0 /      1  giver  0  med rest    0        4080

så decimalt 16512 = hex-tal  4080

mvh  JakobA
Avatar billede mystart Nybegynder
22. november 2000 - 22:35 #16
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 ?!?
Avatar billede mystart Nybegynder
22. november 2000 - 22:42 #17
Hvorfor 128 / 256  // 128 / 16 ???
Avatar billede jakoba Nybegynder
22. november 2000 - 22:48 #18
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?

mvh JakobA
Avatar billede jakoba Nybegynder
22. november 2000 - 22:50 #19
mystart 2> fordi sådan en algoritme skal følges slavisk. Ellers løber man sur i det og misser \"0\"-et.
Avatar billede mystart Nybegynder
22. november 2000 - 22:55 #20
ps svar ::
JA

Jeg forstår det stadig ikke, hvad er radix ??
Avatar billede jakoba Nybegynder
22. november 2000 - 23:03 #21
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 :-))
Avatar billede hobbez Nybegynder
22. november 2000 - 23:06 #22
Sådan har jeg lært det:

Et normalt tal er f.x. 423

4 hundrede = 400
2 tiere = 20
3 enere = 3

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).

/Rob
Avatar billede hobbez Nybegynder
22. november 2000 - 23:09 #23
Ups, sætningen

\"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
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester