आईईईई 754 अनुरूप फ़्लोटिंग दशमलव के लिए प्वाइ

R

roykyn

Guest
मैं में 32-bit चल बिन्दु संख्या दशमलव में बदलने का तो जैसे मैं यह 16X2 ..... एलसीडी पर प्रदर्शित कर सकते हैं चाहता हूँमैं pic16f72 ..... मैं उपयोग कर रहा हूँ प्रक्रिया की जरूरत है या सॉफ्टवेयर कैसे काम करता है ....

 
आप इस उपयोगी अगर तुम sprintf के कोड आकार नहीं करना चाहता कोड ढूँढ सकते हैं.एक बार तुम s [में ASCII वर्ण मिल गया है], तुम उत्पादन हो सकता है कि कोई बात नहीं चित्रमय प्रदर्शन या 2 * 20 एलसीडी डिस्प्ले है.

पूरी परियोजना के लिए 1 दशमलव स्थान में तापमान और आरएच मूल्यों प्रदर्शन इस समारोह का उपयोग कर नीचे दिखाया गया (65k रंग एलसीडी डिस्प्ले के लिए)

अगर अधिक दशमलव स्थानों, sprintf पर विचार करना चाहता था.

कोड:

/ *

************************************************** ************************************************** *****

* CONVERT एक चल बिन्दु संख्या 1 दशमलव स्ट्रिंग के लिए जगह के साथ

*

* विवरण इस समारोह को एक रिक्त चल बिन्दु धर्मान्तरित स्ट्रिंग समाप्त:

* के साथ 1 दशमलव स्थान.

*

उदाहरण *:

*

* = 9.567 च फ्लोट;

* Ftoa (S & [0], च); / / s []={' 9','.',' 5 ', 0)

* = -0.189 च फ्लोट;

* Ftoa (S & [0], च); / s / []={'-', ''0', '.', '1, 0)

तर्क * ': अहस्ताक्षरित वर्ण * buf' स्ट्रिंग रूपांतरण परिणाम रखने के लिए संकेत है

* 'च नाव' बात चल इनपुट है

रिटर्न *: कोई नहीं

* नोट: यह itoa10 से संशोधित () में .. \ नमूना ht के \ Misc फ़ोल्डर-picc दिनचर्या

* यदि अधिक दशमलव स्थानों की जरूरत, इस कोड के पिछले भाग को संशोधित

* (-3,276.7, 3,276.7 में च की रेंज)

* यह काम करता है 0.0 की तरह नतीजा प्रिंट नहीं है.
इसके बजाय, एक '0 'छपा है.

************************************************** ************************************************** *****

* /

शून्य ftoa (अहस्ताक्षरित वर्ण * buf, नाव च) (

अहस्ताक्षरित int लोकलक्षी;

अहस्ताक्षरित चार एस, = 0 लंबाई *;

int i;(i int) = ((नाव) * 10 च);एस buf =;

अगर (i == 0) (

* s = '0 ';

* = 0 एस; / अशक्त / स्ट्रिंग समाप्त

और) (

अगर (i <0) (

* buf = '-';

एस buf =;

मैं मैं =;

)

/ / समय-पाश "" ASCII के लिए समझाना के लिए लंबे समय पूर्णांक रिवर्स तरीके से ''0, स्ट्रिंग संलग्न द्वारा

/ / यदि यह 124 के एक पूर्णांक है - तार> = ( ''4', '2, '1 ')

जबकि (i) (

लंबाई;

लोकलक्षी = मैं 10%;

* s लोकलक्षी = '0 ';

i = 10 /;

)

/ / के लिए इस में स्ट्रिंग-पाश, स्ट्रिंग बन रिवर्स ( ''1', '2, '4 ') के लिए इस के बाद पाश

(लोकलक्षी = 0; ((अहस्ताक्षरित चार) लोकलक्षी) <लंबाई / के लिए 2, रेम ) (

(* buf लंबाई) = (* buf ((अहस्ताक्षरित चार) लोकलक्षी));

(* buf ((अहस्ताक्षरित चार) लोकलक्षी)) * = buf ((लम्बाई ((अहस्ताक्षरित चार) लोकलक्षी) -1));

(* buf (लम्बाई ((अहस्ताक्षरित चार) लोकलक्षी) -1)) = (* buf लंबाई);

)/ 0.x के विशेष मामले में यदि लंबाई == * 1 का ख्याल रखना * /

अगर (लंबाई == 1) (

* (2 buf) = buf *;

* buf = '0 ';

* (1 buf) = ''.;

* (2 s = 0); / अशक्त / समाप्त

और) (

(* buf लंबाई) = (* buf लंबाई-1);

(* buf लंबाई-1 )='.';

* (1 एस = 0); / अशक्त / समाप्त

)

)

)
 

Welcome to EDABoard.com

Sponsor

Back
Top