» »

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

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

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

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

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)

Vesoljc ::

izraz je čisto na mestu ;)
Abnormal behavior of abnormal brain makes me normal...

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

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


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

C++(bin file) vprašanje

Oddelek: Programiranje
121460 (1338) technolog
»

7 segmentni LCD prikazovalnik...

Oddelek: Šola
95386 (4566) mte
»

Kako odpreti file z notepadom če je večji kot 1 giga?

Oddelek: Pomoč in nasveti
222095 (1573) fosil
»

Iskanje podvojenih zaporedij

Oddelek: Programiranje
91819 (1599) Gundolf
»

[java ali C] Datoteka v obliki 0 in 1

Oddelek: Programiranje
191815 (1535) Mmm'Aah

Več podobnih tem