Kuiz Besar no.4
Mengkombinasikan variabel dan konstanta dari tipe yang
berbeda dalam suatu ekspresi akan secara otomatis dikonversi ke tipe data yang
sama oleh kompiler. Konversi tipe yang terdefinisi sebelumnya disebut proses type conversion atau konversi jenis.
Konversi jenis dalam C diklasifikasi dalam dua jenis; yaitu implicit conversion atau type promotion, dan explicit conversion.
Konversi Implist /
Type Promotion
Type conversion
yang terjadi secara otomatis tanpa sentuhan programmer dikenal sebagai implicit type conversion atau type
promotion. Operand-operand (nilai diantara operator) akan dikonversi
menjadi tipe data operand yang terbesar.
Beberapa aturan-aturan yang terjadi saat mengevaluasi
ekspresi adalah sebagai berikut:
Semua short dan char secara otomatis akan dikonversi
menjadi int.
Jika salah satu operand bertipe long double, maka operand lain akan dikonversi menjadi long double dan hasilnya pun juga long double.
Jika salah satu operand bertipe double, maka lainnya akan jadi double.
Begitu juga
dengan tipe float dan unsigned long int.
Jika salah satu operand adalah long int dan lainnya unsigned
int, maka saat long int dapat
merepresentasikan semua nilai atau value dari satu unsigned int, unsigned
int dikonversi jadi long int.
Atau, kedua operand terkonversi jadi unsigned
long int.
Jika salah satu operand adalah long int maka lainnya akan menjadi long int
Jika salah satu operand adalah unsigned int maka lainnya akan menjadi unsigned int
Untuk diingat, hasil akhir ekspresi dikonversi ke tipe variabel
di sisi kiri operator perintah sebelum memasukkan nilai ke dalamnya.
Konversi float ke int menyebabkan truncation atau hilangnya bagian fraksional.
Konversi double ke float menyebabkan pembulatan angka.
Konversi double ke float menyebabkan pembulatan angka.
Konversi long int ke
int menyebabkan menurunnya tatanan
bit yang lebih tinggi
Konversi Eksplisit / Type Casting
Konversi tipe ini dilakukan secara manual oleh sang
programmer, beda dengan implisit yang secara otomatis terkonversi oleh
compiler.
Metode ini boleh atau biasa disebut type casting
Bentuk type casting
itu seperti ini umumnya:
(tipe_data) ekspresi
Dimana tipe_data merupakan tipe data C yang valid, sementara
ekspresi bisa diisi variabel, konstanta atau suatu ekspresi.
Ada aturan-aturan yang wajib diikuti pada saat mengkonversi ekspresi dari tipe A ke tipe B untuk menghindari hilangnya bagian :
Semua tipe integer yang bakal dikonversi ke float
Semua tipe float yang bakal dikonversi jadi double
Semua tipe char yang bakal dikonversi ke int
Contoh :
X = ( int ) a + b * c;
Tidak ada komentar:
Posting Komentar