unsigned int mit float multiplizieren

Gast #1627630
Lesenswert?
• ▲
▼
Hallo,

könnte mir jemand bitte sagen ob folgende Code-Zeile so funktionieren 
könnte.

Schwelle = (u16)((Sum_mittel * Faktor) + Offset);

Sum_mittel ist unsigned int (16-Bit)
Faktor und Offset ist float
Schwelle ist wieder unsigned int (16-Bit)

Faktor und Offset sind immer positiv.

Danke, Gruß Tobias
Gast #1627646
Lesenswert?
• ▲
▼
Klare Antwort Ja.

Der Code ist syntaktisch richtiger C-Code, und wird damit immer genau 
das machen, was der C-Standard dafür vorschreibt (wenn der verwendetet 
Compiler keine Macke hat).

Ob das, was nach C-Standard da passieren soll, auch das ist, was du dir 
vorstellst, ist eine andere Frage.

Oliver
Gast #1627651
Lesenswert?
• ▲
▼
Wie gesagt, Faktor und Offset sind immer POSITIV. Ein Überlauf von 
Schwelle ist auch ausgeschlossen.
Mich interessiert mehr ob das mit dem Umwandeln von einer 
vorzeichenbehafteten Zahl in eine vorzeichenlose Zahl so passt.
#1627673
Lesenswert?
• ▲
▼
Wie gesagt:
Der Syntax ist korrekt.
Aber ob du damit glücklich wirst hängt vom Wertebereich und der 
geforderten Auflösung ab.
Du must sicherstellen das kein Über/Unterlauf passiert und noch genug 
Auflösung bleibt.
Kommen Faktor und Offset von einer Kalibrierung, kann man davon ausgehen 
das es Past. Sind das Handeingaben, würde ich auf jedenfall auf den 
zulässigen Bereich prüfen.

ciao Volker

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.