Erstmal vielen Dank für die Hilfe!
Zitat:Übrigens: Was die richtige Schreibweise von Fachbegriffen angeht, so kann man Dir da kein Kompliment machen.
Das ist echt peinlich
Da war ich wohl zu schnell.
Also ich fasse mal zusammen um zu sehen, ob ich es verstanden habe.
1, MSByte und LSByte füge ich mit der "join" funktion zusammen zu einem U16 Wert, der dann zu I16 umgewandelt wird, da es ja ein vorzeichenbehafteter Wert sein kann.
2, Das Vorzeichen ist nun im MSB, da wo es hingehört. Würde ich nun bitshiften würde ich quasi das Vorzeichen verschieben, was blödsinn ist und deshalb teile ich durch 256 was zur richtigen Skalierung führt und LabVIEW das Vorzeichenbit immernoch richtig erkennen lässt.
3, Falls das MSByte > 0x7F ist (z.B. 0x80 = 1000 0000b) bekomme ich einen "sehr" negativen Wert. Aber macht das Sinn?
Anwendung des 2er Komplements: Alle Stellen invertieren und +1
0x80 = 1000 0000b ---> 0111 1111b + 0000 0001b = 1000 0000b --> maximal negativer Wert (Insofern LSByte = 0)
0x81 = 1000 0001b ---> 0111 1110b + 0000 0001b = 0111 1111b --> "weniger" negativer Wert
Mach also in meinen Augen Sinn, dass je größer die Zahl wird, nachdem das MSB von 0 auf 1 springt und somit ein '-' indiziert, der negative Wert geringer wird.
Berichtigt mich bitte falls ich falsch liege.
Gruß
Stefan