Float-arvon esitysmuoto muistissa

Nykyisessä projektissani pitää eräässä testissä lukea laitteen GPS-vastaanotinmodulilta tulevaa tietoa ja ottaa siitä tietty osa. Ongelmana on ettei tulevan datan rakennetta ole speksattu tarkkaan ja joudun tutkimaan vastaanottotaskilta tulevaa heksadumppia. Eräässä kohti saattaisi olla float-arvo, mutta en ole asiasta varma. Kyseisessä kohdassa näyttäisi olevan 32-bittinen arvo, joka kokeiluissa vaihteli jotakuinkin arvojen 0x40B9999A ja 0x417CCCCD välillä. Muistaakseni float-arvot tallennettiin sisäisesti muodossa etumerkki-mantissa-eksponentti, mutta en muista miten eri osat jakautuivat. Etumerkki taisi olla ylimmässä bitissä (0=positiivinen) eli molemmat luvut olisivat positiivisia kuten pitäisikin. Mikä on standardi floatin bittijako ja miten arvot koodataan ?
2271
Äänestä

Muut lukivat myös

Vastaukset 2

Vanhimmat

Tota jeejee:tä voisi kai pitää eräänlaisena standardina (Ainakin hyvänä oletuksena).

http://en.wikipedia.org/wiki/IEEE_754

(Kaupan gps-modullit yleensä lähettää NMEA mukaista virtaa)

Äänestä
  • IEEE 754 on standardi usemmissa prosessoreissa. Joskus (esim PC Mac) liukulukujen tavut ovat käänteisessä järjestyksessä (MSB=most significant byte first, LSB=Least significant bit first (muistaakseni PC, en ole varma).

    NMEA on protokollana (ja ominaisuuksiltaan) tavallinen sarjaliitäntä, ainoastaan fyysinen liitin on erillainen (mutta tämä ei ehkä kuulu tähän)

    Äänestä

Kommentoi aloitusta


The Real J. kirjoitti:

Nykyisessä projektissani pitää eräässä testissä lukea laitteen GPS-vastaanotinmodulilta tulevaa tietoa ja ottaa siitä tietty osa. Ongelmana on ettei tulevan datan rakennetta ole speksattu tarkkaan ja joudun tutkimaan vastaanottotaskilta tulevaa heksadumppia. Eräässä kohti saattaisi olla float-arvo, mutta en ole asiasta varma. Kyseisessä kohdassa näyttäisi olevan 32-bittinen arvo, joka kokeiluissa vaihteli jotakuinkin arvojen 0x40B9999A ja 0x417CCCCD välillä. Muistaakseni float-arvot tallennettiin sisäisesti muodossa etumerkki-mantissa-eksponentti, mutta en muista miten eri osat jakautuivat. Etumerkki taisi olla ylimmässä bitissä (0=positiivinen) eli molemmat luvut olisivat positiivisia kuten pitäisikin. Mikä on standardi floatin bittijako ja miten arvot koodataan ?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu