спливати на ASCII перетворення

M

momar128

Guest
Мені потрібно перетворити число з плаваючою крапкою в ASCII символів в мові Сі. Чи може хтось ілюструють мене з простого прикладу.
 
- Отримати ці форматі зберігаються (ваш компілятор документація повинна сказати, що) у Вашій пам'яті - отримати байт з пам'яті в залежності від формату вище, і конвертувати їх побайтно в ASCII acccording в байт сенсу.
 
Це дуже залежить від машини, ви повинні бути в стані, що вам потрібно, якщо ваш компілятор має Sprintf бібліотечну функцію, яка діє як Printf але поміщає результат в буфер (пам'ять), звідки можна витягти ASCII уявлення вашого поплавця. Я також включив рутини, я знайшов у мережі, але як було сказано раніше, це залежить від машини! Якщо можливе використання Sprintf. сподіваюся, це допоможе
 
Якщо ви використовуєте IEEE 754 (самий звичайний) норма для поплавка пам'ятайте: біт 31 біт знака 23-30 показником з надлишком до 127 (0 ES 127) біт 0 -22 мантиси, то ви можете eloborate функція, яка полягає союзу змішується з estructure для повернення цих полях, а потім обмовляти потім в ASCII. Цей союз повернути поля в байтах для trasmision по RS232 каналу. [Код] {союз подвійний num_float; довго Int num_longint; Int num_int; структури dividir {символ Byte3; символ Byte2; символ byte1; символ byte0;} байт;} номер і доступ до полів для цього прикладу: порожнеча tx_float (подвійний num_tx) {numero.num_float = num_tx; путч (numero.bytes.byte3); путч (numero.bytes.byte2); путч (numero.bytes.byte1); путч (numero.bytes.byte0);} [/ код], то тільки встановити поля для повернення знак, експонента, мантиса, якщо я правильно розумію вашу проблему, і з простої функції перетворити його в ASCII колишнього код. -1,25 E 24. (Знак, мантиса, експоненціально)
 
Ви можете використовувати thses функції: AnsiString __ азЬсаІ FloatToStr (Extended Value); AnsiString __ азЬсаІ FloatToStrF (Extended Value, TFloatFormat формат, внутр Precision, внутр цифр); Int __ азЬсаІ FloatToText (символ * Buffer, сопзЬ недійсними * Value, TFloatValue ValueType, TFloatFormat формат, Int Precision, внутр цифр); Int __ азЬсаІ FloatToTextFmt (символ * Buffer, сопзЬ недійсними * Value, TFloatValue ValueType, символ * Format);
 

Welcome to EDABoard.com

Sponsor

Back
Top