lumutang sa ascii conversion

M

momar128

Guest
Kailangan kong i-convert ang lumulutang point numero sa ASCII Character sa C wika. Maaari sinuman ilarawan sa akin na may simpleng halimbawa.
 
- Makuha ang format na mga ay naka-imbak (iyong C tagatala dokumentasyon ay dapat sabihin na) sa iyong memorya - makakuha ng mga bytes mula sa memory ayon sa format sa itaas at i-convert ang mga ito byte ni byte sa ascii acccording sa byte kahulugan.
 
Ito ay lubos na machine taong palaasa sa kapwa, dapat mong magagawang sa kung ano ang kailangan mo kung ang iyong tagatala may sprintf library function na kung saan gumaganap tulad ng printf ngunit naglalagay ang resulta sa isang buffer (memory) mula sa kung saan maaari mong kunin ang ascii representasyon ng iyong Float. Kasama rin ako ng routine na nakita ko sa net, ngunit gaya ng sinabi ito ay machine taong palaasa sa kapwa!!! Kung ang posibleng paggamit sprintf. Umaasa ito ay makakatulong
 
Kung gagamitin mo ang IEEE 754 (pinaka-karaniwan) pamantayan para sa Float tandaan: bit 31 sign bit 23-30 exponent na may labis sa 127 (0 es 127) bit 0 -22 mantissa maaari mong eloborate isang function na ay binubuo unyon Mixed na may estructure para bumalik ang mga patlang na ito at pagkatapos ay siraan pagkatapos sa ASCII. Unyon na ito ibalik ang mga patlang sa BYTES para trasmision sa paglipas ng RS232 channel.
Code:
 unyon {double num_float; mahaba int num_longint; int num_int; struct dividir {magpasinda byte3; magpasinda byte2; magpasinda byte1; magpasinda byte0;} byte;} bilang, at access sa mga patlang para sa halimbawang ito: void tx_float (double num_tx) {numero.num_float = num_tx; putch (numero.bytes.byte3); putch (numero.bytes.byte2); putch (numero.bytes.byte1); putch (numero.bytes.byte0);}
pagkatapos lamang itakda ang mga patlang para sa ibalik ang lagdaan, exponent, mantissa, kung Nauunawaan ko ang iyong problema, at may simpleng function na-convert ito sa ASCII code hal. -1.25 E 24. (Sign, mantissa, exponen)
 
Maaari mo gamitin function thses: FloatToStr ng AnsiString __ fastcall (Extended Halaga); AnsiString __ fastcall FloatToStrF (Extended Halaga, TFloatFormat Format, int katumpakan, int Digit); int __ fastcall FloatToText (magpasinda * Buffer, const walang bisa * Halaga, TFloatValue ValueType, TFloatFormat Format, int katumpakan, int Digit); int __ fastcall FloatToTextFmt (magpasinda * Buffer, const walang bisa * Halaga, TFloatValue ValueType, magpasinda * Format);
 

Welcome to EDABoard.com

Sponsor

Back
Top