
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Hallo Michael, falls ich nicht zu kompliziert denke, dann bleibt Dir, wenn Du den Counter vor der Berechnung wirklich nicht skalieren und dadurch 2 Bits verlieren willst, nur übrig, eine binäre Division durchzuführen. Das hört sich schwieriger an als es ist. Außerdem muß nur der bei der Ganzzahl-Division entstehende Rest auf diese Weise verarbeitet werden. Siehe folgenden Code: define c word define v word define r word define n byte define i byte print "Berechnung von v=120384/Counter mit zwei dezimalen Nachkommastellen" print "Bitte Counter eingeben (800..12000): "; input c v=(30096/c)*400 'Ganzahl-Division ("Vorkomma-Ergebnis") r=30096 mod c 'Rest n=0 'binaere Division: Rest durch Counter for i=0 to 7 r=r shl 1 n=n shl 1 if (r-c)<0 then endif r=r-c n=n or 1 #endif next i 'in n steht jetzt (r/c)*256 v=v+(n*100)/64+1 'das +1 behebt zwei Rundungsfehler print "v=";v 'ist mit 100 skaliert und auf +/- 0.015 genau end Gruß, Dietmar Meine Homepage: http://ccintern.dharlos.de |
| Antwort schreiben |