Lesen über die ganze Zahl Förderung und integer Umwandlung Rang fand ich diese linkinteger Umwandlung Rang und Förderung
- 1. Wenn beide Operanden vom gleichen Typ sind, dann keine weitere Umsetzung benötigt wird.
- 2.Andernfalls, wenn beide Operanden vorzeichenbehaftete Integer-Typen oder beide vorzeichenlose Integer-Typen haben, wird der Operand mit dem Typ der kleineren Ganzzahl Konvertierungsrang in den Typ des Operanden mit größerem Rang konvertiert.
3.Otherwise, wenn die Operanden, die unsigned integer-Typen hat, um den Rang des Typs des anderen Operanden grßer oder gleich hat Rang, dann der Operand mit signiertem Integer-Typ ist mit dem Typ des Operanden umgewandelt mit vorzeichenloser Integer-Typ
4.Otherwise, wenn der Typ des Operanden mit signiertem Integer-Typ alle Werte von der Art des Operanden mit unsigned Integer-Typ darstellen kann, dann wird der Operand mit unsigned integer Typ umgewandelt den Typ des Operanden mit vorzeichenbehafteten Integer-Typ.
5.Andernfalls werden beide Operanden in den vorzeichenlosen Integertyp umgewandelt, der dem Typ des Operanden mit Ganzzahl mit Vorzeichen entspricht.
Die Punkte 1 2 3 sind völlig klar, aber ich komme immer noch nicht mit Beispiel für den Fall bis 4 und 5. Kann ein Beispiel jemand geben Sie bitte jede Implementierung über?
Wie ich die ganze Zahl Umwandlung Rang wissen ist:
_Bool < char < kurz < int < lange < long long int
Unabhängig von der Größe von Bytes zu den Typen verwandt sind gleich oder höher. Recht?
Betreffend die Förderung oder Umwandlung von einem Typ zum anderen. Sind die Bits, die zum niedrigsten Typ Null oder 1 oder dem linken Extrembit hinzugefügt wurden, davon betroffen?
Ich möchte wissen, wie ist der Prozess in der Bits anzeigen vor allem für die Konvertierung.
Für die Ganzzahl-Promotion kann es immer den Wert und das Zeichen ohne Zweifel bewahren.
In der * bits view * würde es nicht viel Sinn ergeben, da das Bitmuster bei Integer-Promotions weitgehend unverändert ist. –
sie werden immer mit null Bits gefüllt, das ist was Sie sagen wollen und es ist keine Implementierung definiert? @EugeneSh. – rondino
Wenn das vom Standard ist (ist es nicht), zitieren Sie den Paragraphen, usw. Das bloße Verknüpfen einer Site ist ziemlich nutzlos. Das unterscheidet sich wesentlich vom Standard. Beachten Sie auch, dass der C-Standard nur C11 ist. – Olaf