003
30.04.2005, 17:18 Uhr
doppler
|
Dieses Verhalten finde ich erstaunlich, denn soweit ich weiß, muss short int mindestens 16 bit groß sein, und da 0x79 ja 121 entspricht, müsste es auf jeden Fall ohne Probleme konvertiert werden. Auch finde ich komisch, dass die Grenze 121 und nicht 128 ist.
Das unerwartete Verhalten könnte aber auch daher kommen, dass cVar negativ ist, dir das aber nicht bewußt war. Das würde auch erklären, warum das Benutzen von unsigned char hilft. (Bei 16 Bit shorts wird -1 in 65535 umgewandelt.)
Übrigends: bei 8Bit char ist 0x80 gleich -128 und 0x7F gleich 127 . Wie groß auf deinem System die ganzahligen Typen sind, kannst du in der Datei limits.h nachlesen. Dieser Post wurde am 30.04.2005 um 17:34 Uhr von doppler editiert. |