Division mit Ergebnis kleiner 1

Gast #1812203
Lesenswert?
• ▲
▼
Sehr geehrtes Forum,

mein Problem ist Folgendes:

Ich muss 2 Zahlen, die relativ groß sind und nahe beieinander liegen 
teilen, um einen Korrekturwert zu ermitteln.
Konkret geht es um Werte wie
zB 60052/59823=1,003827959
Damit möchte ich dann einen Wert verändern:
1625*1,003827959=1631,220434
Der Wert 1625 wurde auf 1631 verändert.

Wie realisiere ich das am besten auf einem MSP430?


Liebe Grüße,
Schlampf
Gast #1812238
Lesenswert?
• ▲
▼
Hallo,

vielen Dank für die Antworten!

Das hört sich sehr einfach an :)
Hab es trozdem nicht so ganz verstanden ...

Wert * 60052 ist die Mult. zweier 16bit Werte, das kann der MSP430 laut 
Datenblatt ... abgespeichert wird das Erg. in 32bit.
Soweit hab ichs verstanden, aber wie läuft die Division ab?
Gibts dafür auch eine HW-Komponente?

Gruß
Schlampf
Gast #1812244
Lesenswert?
• ▲
▼
Vielleicht schreibst Du mal was eigentlich das Problem ist.

Es ist doch erstmal völlig gleichgültig ob die Division nun per Hardware 
durchgeführt wird oder nicht. Es sei denn Du hast uns eine 
Nebenbedingung nicht genannt. Und jeder Prozessor, der 
subtrahieren/addieren kann, kann auch multiplizieren. Worum geht es 
eigentlich?

Ausserdem frage ich mich wo hier, entsprechend dem Thread-Titel eine 
Division mit Ergebnis kleiner 1 auftritt.
Gast #1812311
Lesenswert?
• ▲
▼
Vielen dank für eure Antworten!


Grrrr schrieb:
> Ausserdem frage ich mich wo hier, entsprechend dem Thread-Titel eine
> Division mit Ergebnis kleiner 1 auftritt.

Das war natürlich schlecht formuliert ...
Ich meinte ein Ergebnis, das seine relevanten Stellen hinter dem Komma 
hat.
zB 1,00001 oder 0,99999.

mano schrieb:
> Lass den PC mal 1625 * (60052 / 59823) und  (1625 * 60052) / 59823
> rechnen und vergeich die Ergebnisse (natürlich alles ints und keine
> floats).

Im ersten BSP wird hinter dem Komma alles abgeschnitten und mit 1 
multipliziert (nutzlos), im 2.BSP werden zwei 16bit Werte multilplizier 
in ein 32bit Ergebnis geschrieben, das ganze dann wieder durch 16bit 
geteilt und dieses Erg. wird dann in eine 16bit Variable 
geschrieben.(richtiges Ergebnis)

Das hat mir schon sehr geholfen (auch fürs Verständnis).
Aber meine Frage wie die Division im MSP430 gemacht wird beschäftigt 
mich immernoch.
Ist es der Algorithmus "binäre Division?"

Wo kann ich mich denn schlaulesen zum Thema Division?
Könnt Ihr mir ein gutes Skript oder Buch empfehlen, das vielleicht 
speziell im Bezug auf uController dieses Thema erklärt?


Gruß,
Sclampf

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.