[पावलले कर्टिस] Segger विभाजन गणना बारेमा ब्लग पोस्ट एक रोचक श्रृंखला छ भन्दा मा। यो एक hotter विषय हुन प्रयोग, तर आजकल धेरै कम्प्युटर वा कम्प्युटर भाषामा गुणन र निर्मित विभाजन लागि समर्थन छ। तर केही प्रोसेसर निर्देशन र यो आदर्श भन्दा कम हुन सक्छ गर्न एक पुस्तकालय कमी छ। तपाईंको आफ्नै रोल गर्न तपाईं कसरी गति वा ठाउँ लागि अनुकूलन गर्न अनुमति सक्छ थाह। न्यूटन गरेको तर्कको प्रयोग गरेर वर्तमान installment कवर विभाजन गर्न।
स्टीव मार्टिन एक करोडपति र कहिल्यै भुक्तानी कर हुन कसरी एक प्रसिद्ध बिट थियो। उहाँले पहिलो … एक लाख डलर प्राप्त, भन्दै “गरेर बाहिर थाले। त्यसपछि … “यो विधि जस्तो एक बिट तपाईं पहिलो थाहा कसरी गुणन अघि तपाईं विभाजन गर्न सक्छौं छ देखि छ। आधारभूत परिसर दुइटा छ: न्यूटन तरिका तपाईं क्रमिक multiplications र त्यसपछि पारस्परिक विभाजन जस्तै हो एक नम्बर गुणन गर्दाको एक पारस्परिक को अनुमान परिष्कृत गरौं। अर्को शब्दमा, हामी 6 द्वारा विभाजित 34 आवश्यक छ भने, तपाईं लेखन सक्छ 34 34/6 गर्न * 1/6 र जवाफ नै छ।
reciprocals लागि न्यूटन गरेको लगभग तपाईं जवाफ मा एक अनुमान लाग्न र त्यसपछि multiplications एक श्रृंखला मार्फत यसलाई परिष्कृत गर्न अनुमति दिन्छ। प्रत्येक गुणन राम्रो शुद्धता सिर्जना गर्छ। तपाईं एक क्लासिक गति / ठाउँ व्यापार-बन्द गर्न प्रयोग गर्न सक्छन्। उदाहरणका लागि, let बस हामी एक बाइट (संभाव्यतः एक निश्चित बिन्दु बाइट) को पारस्परिक पाउन चाहनुहुन्छ मान गर्नुपर्छ। 256 तत्व को एक नजर-अप तालिका सिद्ध शुद्धता प्रदान हुनेछ र धेरै छिटो हुनेछ। कुनै गणित आवश्यक छ। तर के 32 बिट? अब तालिका अझै पनि ठूलो छ। तर तपाईं हेर्न सक्छ, भन्न 32-बिट नम्बर को पहिलो 8 बिट। अथवा धेरै। वा कम। तपाईं महत्त्वपूर्ण कुरा के मा निर्भर गर्दछ।
त्यसैले अब तपाईंको पारस्परिक एक गरिब अनुमान छ। सर Issac यसलाई अझ राम्रो बनाउन सक्नुहुन्छ। केही नम्बर एक को लागि, तपाईं सँगै आफ्नो अनुमान (X) र गुणन तिनीहरूलाई लिन्छन्। 2 बाट कि नम्बर घटाउनुहोस् र नयाँ अनुमान प्राप्त गर्न आफ्नो पुरानो अनुमान गुणन गर्न कारक छ। अगाडि छोड्दै, यो तपाईंको अनुमान सही थियो भने, गुणन तपाईं सबै पुरानो अनुमान परिवर्तन हुनेछ, जो 1 दिन्छु स्पष्ट छ। अनुमान बन्द छ भने, तपाईंले एक मापन कारक पाउनुहुन्छ।
एक सूत्र रूपमा यो जस्तो देखिन्छ:
एक्स = एक्स * (2-एक * x);
त्यसैले तपाईं 22 को पारस्परिक .02 हुन सक्छ निर्णय भने पहिलो पास तपाईं दिनेछु:
0,02 * (2-22 * 0,02) = .0312
.0312 * (2-22 * .0312) = .0410
.0410 * (2-22 * .0410) = 0,0450
सही जवाफ एक दोहराए दशमलव 0.0454545 छ र यदि तपाईं जा राख्न, तपाईं त्यहाँ पाउनुहुन्छ।
पाठ्यक्रम, त्यसपछि तपाईं गुणन गर्न विभाजन गर्न थप एक समय छ।
हामी पोस्ट एक निश्चित-बिन्दु कार्यान्वयन छ र त्यसपछि शाखा, RISC-वी र dsPIC30 लागि परिणामस्वरूप विधानसभा कोड जाँच्ने मन परायो। राम्रो मूल्य एक पढ्नुहोस्।
हामी गणित चाल हामी विधानसभा भाषा मा प्रयोग गर्न सक्नुहुन्छ प्रेम। तपाईं AVR काम र बिन्दु अस्थायी हुनुहुन्छ भने, यो विधि सम्झना छैन।