tipi di conversione

tipi di conversione
3.7 (73.33%) 3 voti




Tipo di conversione C ++, per i principianti, per i manichini, da zero, C ++ di base di programmazioneconversione di tipo in C ++ piuttosto vecchio, o meglio una classica operazione. In breve e in russo: tipo di conversione – è considerato un indicazione di un insieme di computer di byte intero o reale. O un puntatore a una classe specifica.

generalmente, per comprendere la conversione di tipo è necessario esaminare le variabili meccanismo e la struttura. Ad esempio, nAC linea multiplo intero: short int, int, long int, senza contare il unsigned. E luoghi computer per loro un diverso numero di celle di memoria (byte): 1, 2 e 4 rispettivamente. Convertire all'interno di questi tipi di una classe è chiamata la conversione standard. a:

Prendere la prossima: prendere il byte due più giovane di una variabile "A", semplicemente trapiantato in due bytes di variabili «B». Poiché il valore d' e (unità) è attualmente posizionato in queste due byte, il programma darà il risultato corretto, e C ++ non sarà contro una tale conversione.

Perché ho bisogno di prendere in considerazione la dimensione della variabile nella conversione?

Che cosa succede se si mette in una variabile "A" numero 123456789? E 'perfettamente in 4 tipo di byte int, ma 2 tipo di byte short int esso non rientra più. troppo. C ++, come previsto, solo taglia il numero di lungo, prendendo solo la coda di esso, e messo in una variabile «B». Otteniamo corso sciocchezze. E con un meno, se lo si porta sullo schermo. La conversione dalla variabile, che occupa un maggior numero di byte nella memoria non è corretto. Se si converte al contrario dal corto in lungo per esempio tali problemi non lo farà, perché i byte nel destinatario variabile più, e dei dati dei luoghi che memorizza corto abbastanza.

È necessario conoscere. Gli insegnanti spesso prendere gli studenti in questa attenzione, soprattutto nel manuale di formazione dando una trappola simile con variabili poco compatibili tra loro dimensioni.

Per quanto riguarda i tipi di conversione reale, Si è impegnata in un coprocessore matematico. Non c'è più solo i byte distillati da una cella all'altra, e istruzioni speciali vengono eseguite, che convertono il tutto in un tipo di materiale con una mantissa e dell'esponente, come dovrebbe essere, e valore di ritorno. Questa non è una conversione, è convertito. comunque, Si tratterà con il processore.

In questo esempio, la co-processore matematico converte il vero a intero, e guiderà a una variabile, e poi fare l'operazione inversa: Sarà guidare un complesso nel suo registro speciale (Si chiama ST), e dopo che otterrebbe da una vera e propria parte integrante, pari a quella, variabile che “e”.

Se si desidera convertire da un vero e proprio raddoppiare (8 byte) in galleggiante (4 byte), qui tali problemi, nel suo complesso non sarà un. coprocessore matematico proprio dietro fino al valore reale, si inserisce in 4 byte, che non porta ad un valore non corretto:

Il risultato sarà ancora il numero 1.234568e + 18, il che significa un 1,2-plus 18 gradi. un'altra cosa, in “un” ci sarà arrotondato al numero di cifre decimali 6 °, invece 1.234567891234566e + 18. In, calcoli accurati studi non interferisce, ma si raccomanda di utilizzare il materiale di programma dello stesso tipo, questo non è accaduto qui l'arrotondamento.

Oltre al tipo di trasformazione esiste una cosa come il cast.

Visibilità typecast può mostrare un esempio:

Se la conversione – questa decisione C ++ (o meglio compilatore), in che tipo di risultato, utilizza un tipo di getto, rigidamente specificato dal programmatore. In questo esempio, il programmatore dice al compilatore, è necessario convertirlo in un int, ma non in short int. Dopo tutto, 25 e posto in int e corto, che seleziona il programmatore compilatore non può sapere.

Nella vita di tutti i giorni tali conversioni di tipo in realtà rari. E non è necessario. L'ideologia di programmazione in un accenno residenziali per evitare tali fronzoli, perché possono essere un rastrello (nell'esempio sopra nella conversione di tutto), getta quindi in C ++ non dovrebbe essere usato in tutto il mondo.

:) Grazie per questo articolo il suo autore stilet – Super Moderatore programmatori offline ProgrammersForum.

Newsletter nuove lezioni sulla programmazione:

7 pensieri su "tipi di conversione

  1. Questa lezione non è chiaro, di riscrivere questo breve articolo più linguaggio comprensibile:(

    1. Un più chiaro in quali termini?
      Tipo di conversione dopo l'esecuzione a un livello basso e generalmente dipende fortemente sull'ottimizzazione del compilatore.
      Inoltre il tipo di conversione è molto vasta area e dipende (può dipendere) dai compiti stessi, dove viene applicata la trasformazione.

      1. > conversione tipo dopo l'esecuzione basso
        1. Le trasformazioni non digitare “lavoro” – viene intrapresa alcuna azione, ci indicano semplicemente di prendere in considerazione i dati degli elementi nel formato di un tipo di dati.

        > tutto dipende molto sull'ottimizzazione del compilatore.
        2. Non dipende affatto dal compilatore. tipizzazione – è puramente nozione sintattica C ++ – per il monitoraggio e la verifica nel testo. Dopo la compilazione di tutti i tipi di informazioni è completamente persa.

  2. Il tipo di dati dell'oggetto (come sostantivo è un linguaggio) determina quali azioni (verbo in lingua) può essere applicato all'oggetto.
    per esempio, tipo – “mela”, può essere: mangiare, asciugare, etc..
    Ma se si converte al tipo di “palla”, allora è possibile giocare a calcio … ma non può mangiare.

    1. Si tratta di una falsa dichiarazione, perché dopo typecast il valore delle loro proprietà non cambia.

      Ma non vedo alcuna ragione per sostenere – Il debugger giudicherà tutti, che vuole il suo aiuto è quello di conoscere la verità.

      1. > perché dopo typecast il valore delle loro proprietà non cambia.

        Si scrive sciocchezze, non confondere l'adolescenza…
        unsigned long ul = 1234;
        – trasformare:
        char * pc = ++(char *)il;
        quanta volontà? … correttamente ;-) = 1235
        – trasformare:
        breve * ps = ++(corto*)il;
        quanta volontà? … correttamente ;-) = 1236
        – trasformare:
        uint32_t * pi = ++(uint32_t *)il;
        quanta volontà? … correttamente ;-) = 1238
        etc.

  3. 1) Tipo conversione sull'esempio di un vero e può essere eseguito a livello di processore e il modulo per la matematica.

    2) Digitando non è solo “nozione”, e certamente non solo per il controllo di, che in C, come una risata gatto. Anche se le informazioni sul tipo non sono memorizzate nel file eseguibile, solo la materia, processore è univocamente indica il tipo se è un puntatore ad una reale o ASCIIZ, o puntatore di interfaccia.

Lascia un Commento

Inserire il codice nei tag: <pre class="lang:C ++ decodifica:true ">IL TUO CODICE</pre>