flyta till ASCII omvandling

M

momar128

Guest
Jag behöver konvertera flyttal till ASCII-tecken i C-språket. Kan någon illustrera mig med enkelt exempel.
 
- Få formatet dessa sparas (din C-kompilator dokumentationen måste säga att) i ditt minne - få byte från minnet enligt formatera ovan och konvertera dem byte för byte till ascii acccording till byte mening.
 
Detta är mycket maskin beroende, bör du kunna vad du behöver om din kompilator har sprintf bibliotek funktion som fungerar som printf men sätter resultatet till en buffert (minne) där du kan extrahera ASCII representation av din flyta. Jag ingår också en rutin som jag hittade på nätet, men som sagt det är maskin beroende! Använd om möjligt sprintf. hoppas att detta hjälper
 
Om du använder IEEE 754 (vanligaste) normen för float kom ihåg: bit 31 teckenbit 23-30 exponent med överskott till 127 (0 ES 127) bit 0 -22 mantissa kan du eloborate en funktion som är sammansatt förening blandas med estructure för tillbaka dessa fält och sedan BAKTALA sedan till ASCII. Denna förening returnera fälten i byte för trasmision över en RS232-kanal. [Kod] unionen {dubbel num_float, lång int num_longint, int num_int, struct dividir {char byte3, röding byte2, röding byte1, röding byte0;} byte;} nummer, och tillgång till områden för detta exempel: void tx_float (dubbel num_tx) {numero.num_float = num_tx, putch (numero.bytes.byte3), putch (numero.bytes.byte2), putch (numero.bytes.byte1), putch (numero.bytes.byte0);} [/code] då endast ställa fälten för tillbaka skylten, exponenten, mantissa, om jag förstår ditt problem, och med enkel funktion konvertera den till ASCII-nummer ex. -1,25 E 24. (Tecken, mantissa, exponen)
 
Du kan använda thses funktioner: AnsiString __ fastcall FloatToStr (Extended Value), AnsiString __ fastcall FloatToStrF (Extended värde, TFloatFormat format, int Precision int siffror), int __ fastcall FloatToText (char * Buffer, const void * Värde, TFloatValue ValueType, TFloatFormat format, int Precision int siffror), int __ fastcall FloatToTextFmt (char * Buffer, const void * Värde, TFloatValue ValueType, char * Format);
 

Welcome to EDABoard.com

Sponsor

Back
Top