Integer Promotion Bahasa C dan Fungsinya
/* integer promotion
pada bahasa C */
#include <stdio.h>
int main()
{
char a = 30, b = 40, c = 10;
char d = (a * b) / c;
printf ("%d ", d);
return 0;
}
Jika diperhatikan sekilas, ekspresi (a*b)/c akan membuat proses aritmatika akan menjadi overflow karena karakter signed mendapat nilai hanya dari -128 hingga 127 pada kebanyakan tipe kompilator, dan nilai subekspresi '(a*b)' adalah 1200 yang nilainya lebih besar dari 128. Tetapi promosi integer yang terjadi dalam proses perhitungan yang dilakukan pada tipe dan hasil yang didapat, tidak akan menjadi overflow.
/* integer promotion
pada bahasa C */
#include <stdio.h>
int main()
{
char a = 0xfb;
unsigned char b = 0xfb;
printf("a = %c", a);
printf("\nb = %c", b);
if (a == b)
printf("\nBernilai sama");
else
printf("\nTidak bernilai sama");
return 0;
}
b = ?
Tidak bernilai sama
Ketika akan mencetak nilai 'a' dan 'b', maka karakter yang sama akan dicetak, tetapi ketika nilainya dibandingkan, maka didapatkan hasil bahwa nilai 'a' dan 'b' tidak sama.
- 3 Perbedaan Tipe Data Float dan Double pada Bahasa C [klik]
- Karakter Aritmatika pada Bahasa C dan C++ [klik]
- 2 Jenis Utama Tipe Konversi pada Bahasa C [klik]
- 4 Jenis Utama Kelas Penyimpanan pada Bahasa C [klik]
- 6 Fakta tentang Variabel Static Bahasa C [klik]
- 4 Kondisi Nilai Default Variabel Static pada Bahasa C [klik]
- Pemahaman Volatile Tahap 1 pada Bahasa C [klik]
Secara sederhana, apa yang dimaksud dengan interger promotion?
BalasHapusAda beberapa tipe data yang mengambil jumlah byte dalam ukuran yang lebih sedikit daripada tipe data integer itu sendiri, seperti char, short, dan lain sebagainya. Jika ada operasi yang dilakukan pada tipe data tersebut, maka secara otomatis tipe data tersebut akan dipromosikan sebagai tipe data int.
HapusUdah daripada belajar integer promotion mending rakit PC aja,,
HapusMasih berusaha memahami apa yang dimaksud dengan integer promotion pada materi ini, soalnya bahasan materi yang diberikan terlalu sedikit,
BalasHapusJika ada waktu akan selalu dilakukan perbaikan berkala untuk setiap materi artikel yang akan disajikan pada blog ini
Hapus