nổi để chuyển đổi ascii

M

momar128

Guest
Tôi cần phải chuyển đổi số điểm nổi vào ký tự ASCII trong ngôn ngữ C. Bất cứ ai có thể minh họa cho tôi với một ví dụ đơn giản.
 
- Nhận được định dạng những người được lưu trữ (C biên dịch tài liệu của bạn phải nói rằng) trong bộ nhớ của bạn - nhận được byte từ bộ nhớ theo định dạng trên và chuyển đổi chúng byte bởi byte đến acccording ascii để byte ý nghĩa.
 
Điều này là rất phụ thuộc vào máy, bạn sẽ có thể những gì bạn cần nếu trình biên dịch của bạn có sprintf thư viện chức năng hoạt động giống như printf nhưng đặt kết quả vào một bộ đệm (bộ nhớ) từ nơi bạn có thể trích xuất các ascii đại diện của phao của bạn. Tôi cũng bao gồm một thói quen tôi tìm thấy trên mạng, nhưng như đã nói trước đây là phụ thuộc vào máy! Nếu có thể sử dụng sprintf. hy vọng điều này sẽ giúp
 
Nếu bạn sử dụng tiêu chuẩn IEEE 754 (hầu hết bình thường) cho phao nhớ: bit 31 dấu hiệu bit 23-30 mũ với vượt quá 127 (0 es 127) bit 0 -22 mantissa sau đó bạn có thể eloborate một chức năng được công đoàn bao gồm trộn với estructure trả lại các lĩnh vực này và sau đó phỉ báng sau đó để ASCII. Công đoàn này trở về các lĩnh vực trong BYTES cho trasmision qua một kênh RS232.
Code:
 union {đôi num_float; long int num_longint; int num_int; struct dividir {char Byte3; char Byte2, char byte1, char Byte0;} byte;} số; và truy cập đến các lĩnh vực cho ví dụ này: 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);}
sau đó chỉ thiết lập các lĩnh vực để trở về ký hiệu, số mũ, mantissa, nếu tôi hiểu vấn đề của bạn, và có chức năng đơn giản chuyển đổi nó cũ mã ASCII. -1,25 E 24. (Ký, mantissa, exponen)
 
bạn có thể sử dụng thses chức năng: AnsiString __ fastcall FloatToStr (mở rộng Value); AnsiString __ fastcall FloatToStrF (Giá trị mở rộng, TFloatFormat Định dạng, Precision int, chữ số int); int __ fastcall FloatToText (char * Buffer, const trống * Giá trị, TFloatValue ValueType, TFloatFormat Định dạng, Precision int, chữ số int); int __ fastcall FloatToTextFmt (char * Buffer, const void * giá trị gia tăng, TFloatValue ValueType, char * Định dạng);
 

Welcome to EDABoard.com

Sponsor

Back
Top