[Algemeen]hexadecimaal naar decimaal
Maar nu komt het: Op een site staat, dat:
88 58 01 00(hex)(4bytes) = 882000(nul te veel)
00 08 00 00(hex)(4bytes) = 2048
22 56 00 00(hex)(4bytes) = 22050
Hoe van hex naar decimalen uitrekenen en andersom.
Ps. Kom niet met alleen maar hexdec() aanzetten, want daar schiet ik niks mee op.
Edit:
Het moet php zijn...
Gewijzigd op 01/01/1970 01:00:00 door Steff an
Hexdec() mag ik niet mee aankomen. Maar dan zul je de vraag meer moeten uitleggen.
Die getallen die hierboven staan zijn trouwens allemaal fout.
Gewijzigd op 01/01/1970 01:00:00 door Steff an
88 58 01 00 en 882000
of
00 08 00 00 en 2048
of
22 56 00 00 en 22050
Dus leg uit.
Quote:
Ik zie ook geen hex-dec verband tussen:
Ik ook niet, dus vraag ik het :)
Je moet ze elk als een aparte byte zien.
Want FF = 15 x 16 + 15 = 255 (= max van een byte)
Dan krijg je dus:
8 x 16 + 8 = 144
5 x 16 + 8 = 88
01 = 1
00 = 0
144 88 1 0
Er is dus echt geen verband...
En de dec 882000 geeft als hex 00 0D 75 50 en dat lijkt niet op wat jij hebt.
Steffan:
88 58 01 00(hex)(4bytes) = 882000
0x885801:
1 x 16^0 = 1
0 x 16^1 = 0
8 x 16^2 = 2048
5 x 16^3 = 20480
8 x 16^4 = 524288
8 x 16^5 = 8388608
============= +
8.935.425
Quote:
00 08 00 00(hex)(4bytes) = 2048
Bij de nullen komt er niets uit, dus die laat ik weg ;)
0x00080000:
8 x 16^4 = 524.288
Quote:
22 56 00 00(hex)(4bytes) = 22050
0x22560000:
6 x 16^4 = 393216
5 x 15^5 = 5242880
2 x 16^6 = 33554432
2 x 16^7 = 5368770912
================ +
5.407.961.440
Proof:
0xFF:
15 x 16^0 = 15
15 x 16^1 = 240
=========== +
255
Edit:
Zie ik dat ik nog je vraag beantwoord heb ook.
Gewijzigd op 01/01/1970 01:00:00 door Mitch X
Goed zo Mitch. Knap dat je er achter komt dat de hexwaardes achterste voren staan. Daar zou ik nooit aan gedacht hebben.
Je begint, voor zover ik weet/dacht te weten, net als bij binair en decimaal helemaal rechts.
En dan netjes de machten tellen ...
Voorbeeldjes:
bin. 0101:
1 x 2^0 = 1
1 x 2^2 = 4
======== +
5
dec. 6523:
3 x 10^0 = 3
2 x 10^1 = 20
5 x 10^2 = 500
6 x 10^3 = 6000
=========== +
6523
hex. DEAD
13 x 16^0 = 13
10 x 16^1 = 160
14 x 16^2 = 3504
13 x 16^3 = 53248
============= +
56925
Voorbeeld:
88 58 01 00(hex)(4bytes) = 88200
88 is in een decimaal getal 136
58 is in een decimaal getal 88
01 is in een decimaal getal 1
00 is in een decimaal getal 0
136 * 16^0 = 136
88 * 16^2 = 22528
1 * 16^4 = 65536
--------+
88200
De rest van alle getallen kloppen ook.
Gewijzigd op 01/01/1970 01:00:00 door Steff an
SanThe:
Even wat theorie: Intel-processors zijn "little endian", wat betekent dat het "least significant byte" als eerste wordt opgeslagen.Goed zo Mitch. Knap dat je er achter komt dat de hexwaardes achterste voren staan. Daar zou ik nooit aan gedacht hebben.
Oftewel: een hex-getal 0x01020304 wordt intern opgeslagen als bytes 0x04 0x03 0x02 0x01.
Onder andere Motorola- en SPARC-processors zijn big endian. Daar worden de bytes in de "juiste" volgorde opgeslagen.
Vooral bij het vertalen van software naar andere platforms is dit iets waar je rekening mee moet houden, omdat bijvoorbeeld binaire datafiles dan heel andere gegevens lijken te bevatten.