INT -> USINT Problem

Gast #3557744
Lesenswert?
• ▲
▼
Hallo Leute,

ich habe hier ein kleiens Problem.

Ich habe in einem bestehenden Programm eine INT-Variable (als mit 
Vorzeichenbit), die 16 verschiedene Zustände annehmen kann. Wenn also 
alles auf 1 ist, ist der Zahlenwert -32767.

Ich weise den Zahlenwert der INT-Variable einer UINT-Variable zu, weil 
ich im weiteren gerne mit BOOl-Werten arbeiten möchte.

Ich dachte mir jetzt, daß einfach casten von INT nach UINT dazu führen 
würde, daß die -32767 als 65535 interpretiert wird. Das ist leider nicht 
der Fall.

Wie kann ich das denn sonst bewerkstelligen?
Gast #3557779
Lesenswert?
• ▲
▼
Na ja, zu dieser Diagnose kam ich einfach in der Annahme, daß ich 16 
Einsen eines INT in einen UINT schreibe und das höchstwertige dann eben 
nicht das Vorzeichen ist.

Allerdings hilft mir deine Antwort ansonsten nicht sehr viel weiter.
Gast #3557802
Lesenswert?
• ▲
▼
Deine Aussagen sind etwas verwirrend. Hast du's nun (wie im ersten 
Posting angedeutet) ausprobiert und festgestellt, daß es nicht so 
funktioniert oder ist das nur deine Annahme?

Eigentlich müßte es genau so gehen. Deshalb die Frage, wie du 
festgestellt hast, daß es nicht geht.
Gast #3557809
Lesenswert?
• ▲
▼
Hallo Rolf,

ich hab das schon wirklich probiert. Es geht eben wohl nicht so einfach.
Leider habe ich das Programm jetzt nicht da und kann mich nicht mehr 
genau erinnern, aber ich glaube da kam einfach 32767 positiv heraus!?

Jedenfalls nicht die 65535 wie von mir erwartet.
Gast #3557815
Lesenswert?
• ▲
▼
Hallo Dirk,

danke für deinen Beitrag. Jetzt kommen wir der Sache näher.

Allerdings verstehe ich das nicht ganz.

Theoretisch müßte doch 1 rauskommen beim zweier-Komplement (übrigens 
sind meine beiden Variablen 16 Bit lang)

...Deinen Einwand mit den 32-Bit muß ich noch kurz nachrechnen :)
Gast #3557822
Lesenswert?
• ▲
▼
Korrektur:

Hallo Dirk,

du hast recht, der INT bringt (wenn alles eins ist) -1. Diesen Wert 
möchte ich nun auf UINT umkopieren und zwar so, daß die -1 als 65535 
interpretiert wird und ich dachte eben, daß das mit der Typumwandlung 
gehen würde.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren