INT in 2 BYTE wandeln

Aber ein WORD hat doch keine Vorzeichen oder doch?
Ich könnte das Vorzeichen Bit aber auch extra ansteuern. Das wäre vielleicht sogar einfacher.
:unsure: 😰
Hmmm, diese Frage kommt für mich ziemlich unvermittelt und überraschend. Worauf willst Du hinaus?

Nein, eine vorzeichenlose Zahl (UINT) oder ein BitMuster (WORD), das keine Vorzeichen-behaftete Zahl darstellt, hat natürlich kein Bit, das man mit mehr oder weniger Fantasie als VorzeichenBit bezeichnen würde.
INT, DINT, LINT (also Zahlen in der ZweierKomplementDarstellung) haben ein Bit (nämlich das höchstwertige), das man abfragen kann/könnte, um festzustellen, ob der Inhalt der Variablen positiv oder negativ ist.
Aber Vorsicht, das "Umknippsen" dieses Bits allein invertiert nicht nur das Vorzeichen, sondern verändert auch den Betrag der Variablen.
Man kann nicht aus z.B. +123 durch Setzen des Bits -123 machen und umgekehrt auch nicht durch Löschen des Bits aus -123 eine +123!
Die Bezeichnung eines Bits als VorzeichenBit finde ich irreführend und gefährlich, weil sie einen zu einem UmkehrSchluss verleiten kann, der in keiner Weise gerechtfertigt ist.

Edit: Oliver war schneller.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Aber ein WORD hat doch keine Vorzeichen oder doch?
Ich könnte das Vorzeichen Bit aber auch extra ansteuern. Das wäre vielleicht sogar einfacher.
Wie kommst Du hier auf die Idee daß da irgendwas mit Vorzeichen zu tun hat? Oder meinst Du meine Bemerkung "vorher sollte eine Wandlung von INT nach WORD nötig sein"? Bei dem INT_TO_WORD wird das 16-Bit-Bitmuster des INT ohne Ansehen von irgendeiner Bedeutung 1:1 als WORD übernommen, damit Anweisungen möglich werden, die nur für Bitstring-Datentypen (ANY_BIT) erlaubt sind. Das ist alles, da ist keinerlei Sonderbehandlung von irgendwelchen Bits nötig.

Word Wertebereich: -32768 bis + 32767 oder 0 bis 65535
Ein Word kann keine negativen Werte im Wertebereich haben. Der Wertebereich ist 0 bis 65535.

Harald
 
Zurück
Oben