Sup!
So wie's aussieht (so wie ich den C-Standard verstehe), kann man relativ ungefährdet signed integer auf unsigned integer casten - auch wenn der (Rang des) unsigned integer gleich groß oder kleiner als der (Rang des) signed integer ist und darum der signed-Wert eigentlich nicht in den unsigned umgeformt werden kann, ohne das Vorzeichen oder mehr zu verpfuschen.
sint32 a = 0xffffffff;
uint32 b = (uint32)a; a = 0xffffffff
Wenn man jedoch in die andere Richtung casten will, ist das Ergebnis angeblich "implementation-specific".
uint32 a = 0xffffffff;
sint32 b = (sint32) a; b = ???
Es scheint allerdings keine Implementierung zu geben, wo nicht einfach die Bit-Repräsentation als signed integer interpretiert wird.
Oder hat jemand schonmal irgendein Problem beim casten von unsigned int auf (vom Rang gleich grosses oder kleineres) signed int erlebt?
Gruesse,
Bio
Never give up, never surrender!!!