Bio: C - casten

Beitrag lesen

Sup!

natürlich, die *Interpretation* eines Haufens von 16/32bits Information ist schließlich immer Sache des verarbeitenden Programmteils.

Naja... oder des Compilers oder des Prozessors; das Programm weiss eigentlich nichts darüber, ob die Maschine im Binär-System arbeitet; sie könnte auch mit BCD oder im 7er-System arbeiten (theoretisch).

Hä? Was meinst du mit "Rang"? Wenn Typ U und Typ V beide auf dem Grundtyp Integer beruhen (also egal ob mit oder ohne Vorzeichen, egal ob 8,16,32bit, egal ob int, char, enum), dann bedeutet ein Typecast von U auf V: Nimm die binäre Repräsentation von U und interpretiere sie nach dem Muster von V.

Als Rang bezeichnet man die Bitbreite. Also haben ein uint8 und ein signed char mit 8 Bit Breite den gleichen Rang (also quasi den gleichen Informationsgehalt).

Mein Problem ist einfach, dass im C-Standard nirgends steht, dass es funktionieren muss, wenn ich ein unsigned integer auf einen signed integer gleichen Ranges caste.

Gruesse,

Bio