Enthüllung der Gründe für die Ganzzahlkonvertierung in arithmetischen Operationen
Die Notwendigkeit, kurze Datentypen in int in C und C zu konvertieren, bevor arithmetische Operationen ausgeführt werden hat viele verwirrt. Diese Anforderung hat ihren Ursprung in der Geschichte dieser Sprachen.
Begründung für die Ganzzahlkonvertierung
Gemäß der Begründung für International Standard – Programmiersprachen – C, Abschnitt 6.3. 1.8 wurde für mehrere die Entscheidung getroffen, Berechnungen mit breiteren Typen durchzuführen Gründe:
Die übliche Arithmetik Konvertierungen
Abschnitt 6.3.1.8 des C99-Standards definiert die „üblichen arithmetischen Konvertierungen“, die auf Operanden in arithmetischen Ausdrücken angewendet werden. Für kurze Datentypoperanden erfolgen diese Konvertierungen in zwei Schritten:
1. Ganzzahl-Promotionen
Wie in Abschnitt 6.3.1.1 des C99-Standards beschrieben, werden kurze Ganzzahlen in int konvertiert, wenn int alle Werte von short darstellen kann; andernfalls werden sie in unsigned int konvertiert. Dies fördert die Konsistenz der Berechnungen, ohne die Darstellungsgenauigkeit zu beeinträchtigen.
2. Übliche arithmetische Konvertierungen
Die heraufgestuften kurzen Ganzzahlen (entweder int oder vorzeichenlose int) werden dann weiteren Konvertierungen basierend auf der spezifischen arithmetischen Operation unterzogen.
Die „Unsigned Preserving“- und „ „Werterhaltende“ Ansätze
Während des Standardisierungsprozesses Es gab Debatten zwischen zwei Ansätzen für ganzzahlige Heraufstufungen:
Der werterhaltende Ansatz wurde übernommen, der ein konsistenteres Verhalten und eine genauere Darstellung ermöglicht, insbesondere in Umgebungen, in denen short durch einen Datentyp dargestellt wird, der kleiner als int ist.
Das obige ist der detaillierte Inhalt vonWarum erfordern C und C vor arithmetischen Operationen eine Ganzzahlkonvertierung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!