Qingdao Single Chip Computer entwickelt ein schnelles und präzises C-Sprach-Teilungsschema für Single Chip Computer

2020-08-20 19:39:16 admin

Qingdao Single Chip Computer entwickelt ein schnelles und präzises C-Sprach-Teilungsschema für Single Chip Computer


     Die aktuellen 51 Einzelchip-Mikrocomputer können im Allgemeinen Gleitkommaberechnungen bei der Division von Ergebnissen mit einem Dezimalpunkt verwenden. Die Gleitkommaberechnung hat jedoch den Nachteil, dass sie sehr zeitaufwändig ist und nicht für Arbeitsbedingungen geeignet ist, die eine strenge Zeit erfordern.

    Das Unternehmen des Autors hat lange Zeit Projekte wie Einzelchip-Mikrocomputer, Schaltkreise, elektromechanische Flüssigkeiten, industrielle Steuerung, Automatisierung und Software-EXE-Programmierung durchgeführt und kürzlich einen Einzelchip-Rechner entworfen. Beim Entwurf von Divisionen können lange Ganzzahldivisions- und Restoperationen verwendet werden, um mehrere Dezimalstellen zu erhalten. Bitgenauigkeitsberechnungen werden mit allen geteilt.

Die Designideen lauten wie folgt:

Unter der Annahme eines langen ganzzahligen Divisors a und einer langen ganzzahligen Dividende b sind die Schritte wie folgt:

<1> Liefert den ganzzahligen Teil der Division, c = a / b;

<2> Sei d a% b, e = 10 * d,

Holen Sie sich die erste Dezimalstelle der Division, f = e / b;

(Schlüsselpunkt: Multiplizieren Sie den Rest von a und b mit 10 und dividieren Sie durch die Dividende b, um eine Dezimalstelle nach dem Dezimalpunkt zu erhalten.)

<3> Sei g e% b, h = 10 * g,

Erhalten Sie die zweite Dezimalstelle der Division, i = h / b;

Das Teilungsergebnis, das durch die obigen Schritte erhalten wird, ist c ...

In Analogie können Sie jede Dezimalstelle für die Division erhalten ...

/ *********** Das C-Sprachprogramm ist unten beigefügt, und Yongke Technology Studio bietet Lösungen wie Einzelchip-Mikrocomputer, Leiterplatten, elektromechanische Flüssigkeiten, industrielle Steuerung, Steuerung, Automatisierung, Software usw. an.

********************************************************** ******** /

vorzeichenloses langes Ergebnis, result_p; // Ganzzahliger und dezimaler Teil des Divisionsergebnisses

// result_p ist der Dezimalteil, zum Beispiel result_p = 12345678, was 0,12345678 bedeutet

Void Chufa (vorzeichenloses langes Chushu, vorzeichenloses langes Beichushu, vorzeichenloses Char Wei)

// wei gibt an, wie viele Stellen auf den Dezimalpunkt genau sind

{unsigned char i;

     unsigned long tmp;

     Ergebnis = Ergebnis_p = 0;

     if (beichushu! = 0) // Die Dividende darf nicht 0 sein

        {

         if (wei == 0)

            {result = chushu / beichushu; // Berechne den ganzzahligen Teil

             result_p = 0;

            }}

            sonst

              {result = chushu / beichushu; // Berechne den ganzzahligen Teil

               tmp = chushu% beichushu;

               for (i = 1; i <= wei; i ++) // Berechne den Dezimalteil

                   {tmp = tmp * 10;

                    result_p = result_p * 10 + tmp / beichushu;

                    tmp = tmp% beichushu;

                   }}

              }}

        }}

}}


标签: Qingdao MCU