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