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 ?
Float-arvon esitysmuoto muistissa
The Real J.
2271
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
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)
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)