Binair terug rekenen

  • Onderwerp starter Onderwerp starter JDVB
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

JDVB

Gebruiker
Lid geworden
20 aug 2003
Berichten
89
Hoi,

ik heb even probleempje.
ik heb de volgende getallenreeksen:
Code:
10	-41	35	60    == 0,01
10	-41	-93	60    == 0,02
-113	-62	-11	60    == 0,03
-10	-41	35	61    == 0,04
-51	-52	76	61    == 0,05
-113	-62	117	61    == 0,06
41	92	-113	61    == 0,07
10	-41	-93	61    == 0,08
-20	81	-72	61    == 0,09
-51	-52	-52	61    == 0,10
-82	71	-31	61    == 0,11
-113	-62	-11	61    == 0,12
-72	30	5	62    == 0,13
41	92	15	62    == 0,14
-102	-103	25	62    == 0,15
10	-41	35	62    == 0,16
-82	71	21	65    == 9,33
-92	112	21	65    == 9,34
-102	-103	-113	65    == 17,95
20	-82	-113	65    == 17,96
-128	-106	24	75    == 10000000,00

Achter het = gelijk teken staat de betekenis van deze getallen.
Nu is het alleen de bedoeling deze laatste getallen te kunnen berekenen, aan de hand van de eerste 4.

I heb een sterk vermoeden dat dit iets moet zijn gelijkend op http://richardbowles.tripod.com/durham/comparch/binary.htm

Ik heb dus eveneens een getallenreeks van 4 bytes lang, wat ik terug wil rekenen naar een decimaal getal. Gezien het laatste getal bij mij netjes oploopt, zal dat de macht zijn.

Maar hoe ik dit geheel vervolgens omreken naar een mooi getalletje is mij vooralsnog een groot raadsel.

heeft iemand een idee hoe dit te doen, of die deze getallenreeks herkent en wellicht een pagina weet waar beschreven staat hoe deze is opgebouwd?
 
Nee,

ik wil een database uitlezen via een alternatieve manier.
Via het programma waarmee het werkt kan ik de bijbehorende waarden netjes terug vinden. Overige waarden uit deze tabel kan ik wel netjes uitlezen, ook andere getalswaarden.

Echter lijkt dit een floating point te zijn, en mijn gestoei hiermee heeft me tot op heden nog niet iets nuttigs op geleverd.

ik snap alleen zelf regel 5 van mijn getallen al niet meer, lijkt me logisch als dit het hoogste getal zou zijn na de 1, deze zolang als de 4 byte niet groter wordt steeds groter moet worden, echter doet ie dat op regel 5 niet. Ik ga twijfelen aan mijn eigen waarden.
Maar na regel 5 is deze consistentie compleet zoek. Dan zou ik denken dat er toch een andere logica in zou moeten zitten.

update:
kolommen 1 tot en met 3 zijn de mantissa.
wanneer ik de waarden uit ieder kolom unsigned neem, 1 kolom + 2e kolom * 256 + 3e kolom * 256 * 256 dan krijg ik netjes een oplopende getallenreeks. Dan is het dus alleen nog uitvogelen hoe de exponent werkt. een macht 60 is wat veel.
ook zit ik ermee, dat als ik deze getallen allen achter de comma zet, en er een 1 voor parkeer, dat ze niet meer netjes oplopen.
rij 1 = 10 + 215 * 256 + 35 * 256 *256 = 2348810
rij 2 = 10 + 215 * 256 + 163 * 256 *256 = 10737418

de verschillen tussen iedere rij lijken absoluut te zijn.
Bij de eerste rijen minder dan vanaf 0,08 waar de onderlinge verschillen exact gaan overeenkomen
 
Laatst bewerkt:
een update met hierin de getallenreeksen zoals ik ze nu zie:
Code:
3932160		-63	-11,75	
2348810		60	0,01	
10737418		60	0,02	8388608
16106127		60	0,03	5368709
2349046		61	0,04	
5033165		61	0,05	2684119
7717519		61	0,06	2684354
9395241		61	0,07	1677722
10737418		61	0,08	1342177
12079596		61	0,09	1342178
13421773		61	0,1	1342177
14763950		61	0,11	1342177
16106127		61	0,12	1342177
335544		62	0,13	
1006633		62	0,14	671089
1677722		62	0,15	671089
2348810		62	0,16	671088
0		63	0,50
1394606		65	9,33	
1405092		65	9,34	10486
9410970		65	17,95	
9416212		65	17,96	5242
1611392		75	10000000
het eerste getal is de waarde uit de drie kolomen, het tweede getal een getal waarmee ik uit zou moeten komen op het getal in de derde kolom het vierde getal de onderlinge veschillen uit de eerste kolom.
 
Laatst bewerkt:
Wheey,

ik heb mijn vraagstuk inmiddels opgelost.
de onderlinge verschillen en de regel waarop de eerste drie getallen 0 waren brachten mij ertoe om per regel de waarde 0,01 te bepalen. Vanaf daar appeltje eitje.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan