Rabu, November 20, 2019

Perbedaan format specifier antara %d dan %i pada bahasa C

Sebuah format specifier adalah urutan sekuensial oleh inisial tanda persen (%) yang mengindikasikan sebuah format specifier, yang digunakan untuk menentukan tipe dan format dari data untuk diambil dari stream dan menyimpannya menuju lokasi yang ditunjuk oleh argumen tambahan. Singkatnya, hal ini memberitahukan tipe dari data mana yang akan disimpan dan tipe data apa yang akan dicetak.

Contohnya: jika ingin membuat program yang membaca dan mencetak integer menggunakan fungsi scanf() dan printf(), apakah menggunakan %i dan %d? Terdapat sedikit perbedaan antara format specifier %i dan %d.

"%d menentukan bilangan bulat desimal, sedangkan %i menentukan bilangan bulat."

%d dan %i memiliki behavior sama dengan printf
Tidak ada perbedaan antara format specifier %i dan %d. Perhatikan contoh berikut ini:

Output:
Value of num using %d is = 9
Value of num using %i is = 9

%d dan %i memiliki behavior berbeda dengan scanf
Diasumsikan %d nilai basisnya adalah 10 dan %i secara otomatis mendeteksi nilai basisnya. Karena hal ini, kedua specifier tersebut memiliki perlakukan berbeda ketika keduanya digunakan sebagai input specifier. Sehingga nilai 012 yang ditampilkan sebagai 10 pada specifier %i akan ditampilakn sebagai 12 pada specifier %d.

satu, %d mengambil nilai integer sebagai nilai bilangan bulat desimal, dengan kata lain %d mengambil nilai negatif beserta nilai positif tetapi nilai tersebut dalam bentuk desimal, jika tidak maka angka yang dihasilkan adalah nilai garbage.

dua, %i mengambil nilai integer dengan tipe desimal, hexadesimal, dan oktadesimal. Untuk menyimpan nilai dengan format hexadesimal, nilai harus disediakan oleh preceding "0x" dan untuk nilai dengan format oktadesimal, nilai harus disediakan oleh preceding "0".

Perhatikan contoh berikut ini:
Output:
Enter value of a in decimal format:12
Enter value of b in octal format: 012
Enter value of c in hexadecimal format: 0x12
a = 12, b = 10, c = 18

Penjelasan:
satu, Nilai desimal dari a dengan nilai 12 adalah 12.
dua, Nilai desimal dari b dengan nilai 12(oktadesimal) adalah 10.
tiga, Nilai desimal dari c dengan nilai 12(hexadesimal) adalah 18.





Related Posts

Perbedaan format specifier antara %d dan %i pada bahasa C
Oleh

"semoga yang memberikan komentar diberikan berkah kebaikan dari Allah, dijauhkan dari kejahatan, dan diberikan pahala ilmu dan amal jariyah dari sepenggal kata yang ia tinggalkan amiin :) "