Conversion-Typen

Conversion-Typen
3.7 (73.33%) 3 Stimmen




Typumwandlung c ++, für Anfänger, für Dummies, von Grund auf neu, c ++ Programmierung GrundlagenTypumwandlung in C ++ eher alt, oder eher eine klassische Operation. Kurz gesagt und in russischer Sprache: Konvertierungsart – es ist ein Hinweis auf eine Reihe von Computer-Byte integer oder real betrachtet. Oder ein Zeiger auf eine bestimmte Klasse.

allgemein, die Typumwandlung zu verstehen ist notwendig, den Mechanismus und die Struktur Variablen zu berücksichtigen. Z.B, nAC-Leitung ganzzahligen Vielfachen: short int, int, long int, nicht mitgerechnet die unsigned. Und Computer Orte für sie eine unterschiedliche Anzahl von Speicherzellen (Byte): 1, 2 und 4 beziehungsweise. Rechnen Sie in dieser Art von einer Klasse wird der Standard-Konvertierung genannt. bei:

Nehmen Sie die nächste: nehmen Sie die beiden jüngeren Byte einer Variablen "A", einfach in zwei Bytes variabler transplantierten «b». Da der Wert in und (Einheit) Es ist derzeit in diesen beiden Bytes platziert, das Programm wird das richtige Ergebnis geben, und C ++ wird nicht gegen eine solche Umwandlung.

Warum muss ich die Größe der Variablen in der Umsetzung zu berücksichtigen?

Was passiert, wenn Sie in einer Variablen setzen "A" Anzahl 123456789? Es ist perfekt in 4 Byte-Typ int, aber 2 Byte-Typ short int es fällt nicht mehr. zu viel. C ++, wie erwartet, es schneidet nur die lange Reihe, nur den Schwanz davon nehmen, und in eine Variable «b». Wir bekommen natürlich Unsinn. Und mit einem Minus, wenn Sie es auf den Bildschirm bringen. Konvertieren von der Variablen, die belegt eine größere Anzahl von Bytes in dem Speicher wird nicht korrekt sein. Wenn Sie wandeln das Gegenteil von dem kurz in lange solche Probleme zum Beispiel wird nicht, weil die Bytes in dem variablen Empfänger länger, und Orte Daten, dass Läden kurz genug.

Es ist notwendig zu wissen,. Lehrer fangen oft Studenten auf diesem Fokus, vor allem in der Trainingshandbuch eine ähnliche pitfall mit variabler schlecht miteinander kompatibel in der Größe geben.

Was die Arten von realen Umwandlung, Es ist in einem mathematischen Coprozessor beschäftigt. Es ist nicht mehr nur die Bytes von Zelle zu Zelle destilliert, und speziellen Anweisungen ausgeführt,, die wandeln das ganze in eine Art von Material mit einer Mantisse und Exponent, wie es sein sollte, und Rückgabewert. Dies ist kein Umwandlungs, es wird umgewandelt. Auf jeden Fall, Es wird mit dem Prozessor beschäftigen.

In diesem Beispiel ist der mathematische Co-Prozessor wandelt die realen ganzzahligen, und wird auf eine variable Antriebs, und führen Sie dann den Rückwärtsbetrieb: Es wird eine ganze in seinem speziellen Register fahren (Er rief ST), und nachdem er von einem echten Bestandteil erhalten, gleich jener, Variable, “und”.

Wenn Sie von einem echten zu konvertieren doppelt (8 Byte) in schweben (4 Byte), hier solche Probleme, als Ganzes nicht sein wird, eine. Math Coprozessor runden nur bis zum realen Wert, passt in 4 Byte, das nicht auf einen falschen Wert führen:

Das Ergebnis wird sein, noch die Anzahl 1.234568e + 18, was bedeutet, eine 1,2-plus 18 Grad. Eine andere Sache,, in “ein” es wird auf die Anzahl der sechsten Dezimalstelle gerundet werden, Statt 1.234567891234566e + 18. Im Allgemeinen ungenaue Berechnungen nicht stört es nicht, aber es wird empfohlen, das Programm-Material von der gleichen Art zu verwenden,, dass nicht auch hier passieren solche Rundung.

Neben der Art der Transformation gibt es so etwas wie die Besetzung.

Sichtbarkeit Typumwandlung kann ein solches Beispiel zeigen:

Wenn die Umwandlung – diese Entscheidung C ++ (oder eher Compiler), in welche Art von Ergebnis, verwendet es eine Art Guss, starr vom Programmierer spezifiziert. In diesem Beispiel zeigt der Programmierer dem Compiler, Sie müssen es in einen umwandeln int, aber nicht in short int. Immerhin 25 und platziert in int und kurz, dass wählt der Compiler Programmierer nicht wissen.

Im Alltag solche Typkonvertierungen eigentlich selten. Und es ist nicht notwendig,. Die Ideologie der Programmierung in einem Wohn Hinweise solche Schnörkel zu vermeiden, weil sie eine Harke sein (in dem obigen Beispiel bei der Umwandlung von ganzen), Daher wirft in C ++ sollte nicht überall eingesetzt werden.

:) Vielen Dank für diesen Artikel sein Autor Stilet – Super Moderator Programmierer offline ProgrammersForum.

Newsletter neue Lektionen über die Programmierung:

7 Gedanken zu "Conversion-Typen

    1. Ein klarer, was Begriffe?
      Geben Sie Konvertierung nach auf einem niedrigen Niveau laufen und in der Regel hängt sehr stark von Compiler optimiert.
      Des Weiteren ist Typumwandlung sehr weiten Bereich und hängt (abhängen kann) von den Aufgaben selbst, wobei die Transformation angewendet.

      1. > Typumwandlung nach dem Laufen niedrig
        1. Transformationen nicht geben “Arbeit” – keine Maßnahmen ergriffen werden, Wir zeigen einfach die Elementdaten in dem Format eines Datentyps zu betrachten.

        > Alles hängt sehr viel Compiler auf die Optimierung der.
        2. Es ist überhaupt nicht auf dem Compiler angewiesen. Typisierungs – es ist rein syntaktischen Begriff der C ++ – zur Überwachung und Überprüfung im Text. alle der Arten von Informationen, nach dem Kompilieren vollständig verloren.

  1. Der Datentyp des Objekts (als ein Substantiv ist eine Sprache,) bestimmt welche Maßnahmen (Verb in der Sprache) kann auf das Objekt angewendet werden,.
    beispielsweise, Typ – “Apfel”, es kann sein,: essen, trocknen usw..
    Aber wenn Sie wandeln es in der Art der “Ball”, dann ist es möglich, Fußball zu spielen … aber es kann nicht essen.

    1. Dies ist eine falsche Aussage, denn nach dem Wert ihrer Eigenschaften typisieren nicht ändert.

      Aber ich sehe keinen Grund, zu argumentieren, – Der Debugger wird beurteilen alle, wer will schon seine Hilfe ist es, die Wahrheit zu wissen.

      1. > denn nach dem Wert ihrer Eigenschaften typisieren nicht ändert.

        Sie schreiben Unsinn, nicht zu verwechseln Adoleszenz…
        unsigned long ul = 1234;
        – transformieren:
        char * pc = ++(verkohlen*)die;
        wie viel wird? … richtig ;-) = 1235
        – transformieren:
        short * ps = ++(kurz*)die;
        wie viel wird? … richtig ;-) = 1236
        – transformieren:
        uint32_t * pi = ++(uint32_t *)die;
        wie viel wird? … richtig ;-) = 1238
        usw.

  2. 1) Typumwandlung am Beispiel eines realen und kann auf Prozessorebene und dem Mathematikmodul laufen.

    2) Typing ist nicht nur “Vorstellung”, und sicherlich nicht nur für die Steuerung von, die in C wie eine Katze Lachen. Selbst wenn die Typ-Information nicht in der ausführbaren gespeicherten, nur Materie, Prozessor ist eindeutig zeigt die Art, ob es ein Zeiger auf eine reale oder ASCIIZ ist, oder Interface-Zeiger.

Hinterlasse eine Antwort

Platz Code in Tags: <pre class="lang:c ++ dekodieren:true ">DEIN CODE</Vor>