Forum » Programiranje » pretvorba: 2 bajta float v string
pretvorba: 2 bajta float v string
Misty ::
imam problem s pretvorbo binarne datoteke v tekstovno (programski jezik ni važen)
primer binarne (hex):
63 3F 3C 3F 16 3F 18 3F 3D 3F 0D 3F 00 3F 3B 3F...
primer tekstovne:
-1.53905611038208E+0001 -1.50132627487182E+0001 -1.50750026702880E+0001 -1.50612821578979E+0001 -1.53082408905029E+0001 -1.51161623001098E+0001 -1.50955820083618E+0001 -1.51984815597534E+0001 ...
kolikor sem ugotovil je to, da se za dva bajta binarne datoteke generira 23 bajtov teksta ('preštel' zapise v tekstovni in velikost binarne delil s številom zapisov) na sledeč način:
hex -> string
63 3F -> -1.53905611038208E+0001
3C 3F -> -1.50132627487182E+0001
16 3F -> -1.50750026702880E+0001
...
ali je to kakšna posebna oblika tipa float (v dveh bajtih) ali je tukaj kakšna drgačna logika (google ne najde nič pametnega)?
sem se zadeve lotil na napačen način, sem kaj spregledal?
vsakršna pomoč bo dobrodošla
primer binarne (hex):
63 3F 3C 3F 16 3F 18 3F 3D 3F 0D 3F 00 3F 3B 3F...
primer tekstovne:
-1.53905611038208E+0001 -1.50132627487182E+0001 -1.50750026702880E+0001 -1.50612821578979E+0001 -1.53082408905029E+0001 -1.51161623001098E+0001 -1.50955820083618E+0001 -1.51984815597534E+0001 ...
kolikor sem ugotovil je to, da se za dva bajta binarne datoteke generira 23 bajtov teksta ('preštel' zapise v tekstovni in velikost binarne delil s številom zapisov) na sledeč način:
hex -> string
63 3F -> -1.53905611038208E+0001
3C 3F -> -1.50132627487182E+0001
16 3F -> -1.50750026702880E+0001
...
ali je to kakšna posebna oblika tipa float (v dveh bajtih) ali je tukaj kakšna drgačna logika (google ne najde nič pametnega)?
sem se zadeve lotil na napačen način, sem kaj spregledal?
vsakršna pomoč bo dobrodošla
Quikee ::
2 byte-a za float je bolj malo je pa cisto mozno.. pac je natancnost dosti manjsa. Odvisno je tudi od programskega jezika. VC++ uporablja 4 byte za float in 8 byte za double.
user4683 ::
Možno bi bilo, da je half-precision floating point (torej 2B). Ne vem sicer kako bi to prebral (niti ne vem a je sploh določen standard za to (tako da tudi ne vem kako bi blo z branjem takšnega števila, saj ne veš koliko bitov porabi za kaj).
Morda bi se dalo kaj ugotovit, če poveš kakšen format datoteke je to (končnica, ali kaj podobnega).
Morda bi se dalo kaj ugotovit, če poveš kakšen format datoteke je to (končnica, ali kaj podobnega).
JerKoJ ::
Hmm tvoja podana binarna datoteka je mal zmedena vsak dvojec se konca z 3F
Poleg tega bi blo fajn mal vec primerov, pa se to ce najdes kje iste stevilke v HEX/text
pa so potem isto v text/hex -> to bi blo tut fajn vedt preden nadaljujemo
pa kaksno pozitivno stevilo tut ne bi skodilo
enako velja za potenco, ... skratka cimvec primerov
Poleg tega bi blo fajn mal vec primerov, pa se to ce najdes kje iste stevilke v HEX/text
pa so potem isto v text/hex -> to bi blo tut fajn vedt preden nadaljujemo
pa kaksno pozitivno stevilo tut ne bi skodilo
enako velja za potenco, ... skratka cimvec primerov
Zgodovina sprememb…
- spremenil: JerKoJ ()
snow ::
Mogoče niti ni nujno, da maš kako pozitivno število, sodeč na razpon teh števil tu. Vse 'okol' -1.5
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins
Misty ::
dal sem slab primer, ker na začetku so res vrednosti podobne
Tukaj sta obe datoteki (zipani - 450 kb)
"test.000" je binarna, "test.asc" v formatu ascii
če komu kej pomaga
trenutno se malo "igram" s temi številkami, da vidim če bom kaj pametnega ven dobil...
Tukaj sta obe datoteki (zipani - 450 kb)
"test.000" je binarna, "test.asc" v formatu ascii
če komu kej pomaga
trenutno se malo "igram" s temi številkami, da vidim če bom kaj pametnega ven dobil...
Zgodovina sprememb…
- spremenil: Misty ()
JerKoJ ::
Hmm mal cudn vse skupi - nekako tako kot da je zamesan text data napram bin data
ce gledas zaporedne duplikate v bin potem se na tej poziciji v text ne najdes zaporednih duplikatov
in obratno, tko da se je treba stvari lott bl statisticno
glede na text data je razmerje med pozitivnimi in negativnimi stevili 1607: 108985
glede na to da se za sign uporablja prvi bit je treba to pac primerjat ce je 15 bit 1607 1
v ostalih primerih pa 0 (ali obratno), lahko pa je tudi kaksen drugi bit
se glede eksponentov : segajo od e-0003 do e+0001
torej rabi vsaj 3 biti (lahko tudi 4) za predstavitev s tem da so tukaj razmerja
5:41:91:1693: 108762 (-0003,-0002,-0001,+0000, +0001)
torej je treba najdt trojcek (cetvercek) ki bi tem razmerjem ustrezal
kar ostane so decimalke upaj da v normalizirani obliki
to bo se kr jeba se mi zdi (pa moderatorji naj oprostijo izrazu)
ce gledas zaporedne duplikate v bin potem se na tej poziciji v text ne najdes zaporednih duplikatov
in obratno, tko da se je treba stvari lott bl statisticno
glede na text data je razmerje med pozitivnimi in negativnimi stevili 1607: 108985
glede na to da se za sign uporablja prvi bit je treba to pac primerjat ce je 15 bit 1607 1
v ostalih primerih pa 0 (ali obratno), lahko pa je tudi kaksen drugi bit
se glede eksponentov : segajo od e-0003 do e+0001
torej rabi vsaj 3 biti (lahko tudi 4) za predstavitev s tem da so tukaj razmerja
5:41:91:1693: 108762 (-0003,-0002,-0001,+0000, +0001)
torej je treba najdt trojcek (cetvercek) ki bi tem razmerjem ustrezal
kar ostane so decimalke upaj da v normalizirani obliki
to bo se kr jeba se mi zdi (pa moderatorji naj oprostijo izrazu)
Misty ::
to me najbolj bega, ja
sem predvideval da bo vsaj sign bit lahko najti (oz. predvideval sem da bo to prvi bit).
Pa ni tako.
nobenega bita ki bi bil 1607 krat drugačen...
zanimiva sta prvi bit drugega bajta ki je vedno 0 in drugi bit drugega bajta, ki je postavljen na 1 le v 102 primerih, naprej pa 5 bitov skoraj vedno na 1
bajt : bit : 1
1 1 31388
1 2 68601
1 3 59446
1 4 54292
1 5 55247
1 6 55363
1 7 55427
1 8 56456
2 1 0
2 2 102
2 3 110489
2 4 109415
2 5 109494
2 6 109341
2 7 103343
2 8 80332
če že sign bita ne najdem, kje sta šele mantisa in eksponent...
edited: Datoteka v formatu
"dva bajta hex" "dva bajta bin" "vrednost"
prva dva zapisa sta iz binarne datoteke, tretji zapis pa je iz ascii datoteke
sem predvideval da bo vsaj sign bit lahko najti (oz. predvideval sem da bo to prvi bit).
Pa ni tako.
nobenega bita ki bi bil 1607 krat drugačen...
zanimiva sta prvi bit drugega bajta ki je vedno 0 in drugi bit drugega bajta, ki je postavljen na 1 le v 102 primerih, naprej pa 5 bitov skoraj vedno na 1
bajt : bit : 1
1 1 31388
1 2 68601
1 3 59446
1 4 54292
1 5 55247
1 6 55363
1 7 55427
1 8 56456
2 1 0
2 2 102
2 3 110489
2 4 109415
2 5 109494
2 6 109341
2 7 103343
2 8 80332
če že sign bita ne najdem, kje sta šele mantisa in eksponent...
edited: Datoteka v formatu
"dva bajta hex" "dva bajta bin" "vrednost"
prva dva zapisa sta iz binarne datoteke, tretji zapis pa je iz ascii datoteke
Zgodovina sprememb…
- spremenil: Misty ()
JerKoJ ::
hmm
ta tretji zapis cisto nic ne pomaga, ker kot sem ze reku niso enako razporejeni
glej naprimer vrstice od 33-37 v tvoji datoteki, 33 in 35 imata enako text stevilko
medtem ko se hex razlikuje in enako za 36 in 37 vrstico ko je hex enak
pa se text razlikuje
ocitno je tole trsi oreh, vsaj zame pretrd, probi dobit kaksnega kriptoanalitika :)
al pa vsaj se kaksna informacija o aplikaciji ki to nuca bi bla verjetno tut
koristna
ta tretji zapis cisto nic ne pomaga, ker kot sem ze reku niso enako razporejeni
glej naprimer vrstice od 33-37 v tvoji datoteki, 33 in 35 imata enako text stevilko
medtem ko se hex razlikuje in enako za 36 in 37 vrstico ko je hex enak
pa se text razlikuje
ocitno je tole trsi oreh, vsaj zame pretrd, probi dobit kaksnega kriptoanalitika :)
al pa vsaj se kaksna informacija o aplikaciji ki to nuca bi bla verjetno tut
koristna
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | C++(bin file) vprašanjeOddelek: Programiranje | 1496 (1374) | technolog |
» | 7 segmentni LCD prikazovalnik...Oddelek: Šola | 5432 (4612) | mte |
» | Kako odpreti file z notepadom če je večji kot 1 giga?Oddelek: Pomoč in nasveti | 2116 (1594) | fosil |
» | Iskanje podvojenih zaporedijOddelek: Programiranje | 1853 (1633) | Gundolf |
» | [java ali C] Datoteka v obliki 0 in 1Oddelek: Programiranje | 1845 (1565) | Mmm'Aah |