next up previous contents
Elõre: Utasítások Fel: Konverziók Vissza: Konverzió mutatók között

Aritmetikai konverziók

A Kernighan és Ritchie szokásos aritmetikai konverziónak nevezi azt az eljárást, amely megadja, hogy a különbözõ típusú operandusok milyen konverzión mennek keresztül az aritmetikai operátorokkal alkotott kifejezésekben. A következõkben leírjuk a BORLAND C++ által alkalmazott algoritmus lépéseit:

1.
A nem egész, az int-nél rövidebb illetve a szimpla pontosságú lebegõpontos értékek a 1.5. táblázatnak megfelelõen egésszé illetve double típusúvá konvertálódnak. E lépés után mindkét operandus int, illetve double lesz, beleértve a long illetve unsigned módosító jelzõket.
2.
Ha az egyik operandus long double, a másik operandus is long double-lá alakul.
3.
Ha az egyik operandus double, a másik is double-lá alakul.
4.
Egyébként, ha valamelyik operandus unsigned long, a másik operandus is unsigned long lesz.
5.
Egyébként, ha valamelyik operandus long, a másik operandus is long lesz.
6.
Egyébként, ha valamelyik operandus unsigned, a másik operandus is unsigned lesz.
7.
Egyébként mindkét operandus típusa int.
A kifejezés eredményének típusa minden esetben megegyezik a két operandus típusával.


Típus Mire konvertálódik Eljárás

char int Általában elõjelkiterjesztés
unsigned char int 0 felsõ byte-tal kibõvítve
signed char int Mindig elõjelkiterjesztés
short int Bitminta-másolás
unsigned short unsigned int Bitminta-másolás
enum int Bitminta-másolás
float double Mantisszát 0-kkal bõvítve

 1.5 táblázat: A szokásos aritmetikai konverzióban alkalmazott eljárások