Frage

Ich versuche, Arithmetik mit nur 16-Bit-signierten Wörtern auszuführen. Ich muss in der Lage sein, Addition, Multiplikation usw. durchzuführen.

Als Beispiel muss ich zwei Datenwerte subtrahieren, unten ein Beispiel: 7269.554688-46.8 oder 4385.6616210938 + 32.2

Diese Werte müssen jedoch in 16-Bit-Wörter konvertiert werden, und dann können die Subtraktion, Multiplikation oder Addition durchgeführt werden.

Ich könnte auch mehrere 16-Bit-Wörter verwenden, um einen Wert zu speichern.

Wie würde ich Vorgänge wie Addition, Subtraktion und Multiplikation durchführen und wie würde ich alle meine Eingangswerte angemessen konvertieren, damit sich die Dezimalpunkte immer richtig ausrichten?

War es hilfreich?

Lösung

Für welche Plattform codieren Sie? Um die Vorgänge auszuführen, die Sie als Beispiel gegeben haben, benötigen Sie eine schwimmende Punkteinheit. Die schwimmenden Punktzahlen werden normalerweise durch 32 Bit oder 64 Bit dargestellt, selten 16 Bit.

Wenn Sie keine haben und Sie nur einen einfachen Operationen für 16 -Bit -Ganzzahlen haben, können Sie eine schwimmende Punkteinheit nachahmen, aber das ist keine triviale Aufgabe.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top