Định dạng %d
Định dạng %d nhận giá trị nguyên dưới dạng số nguyên có dấu (signed decimal integer), nghĩa là giá trị phải ở hệ thập phân dù là số dương hay âm.
Ví dụ
#include <stdio.h>
int main() {
int v1 = 7456;
int v2 = -17346;
printf("Giá trị dạng thập phân: %d\n", v1);
printf("Giá trị âm: %d", v2);
return 0;
}
Kết quả
Giá trị dạng thập phân: 7456 Giá trị âm: -17346
Định dạng %i
Định dạng %i nhận giá trị nguyên dưới dạng số nguyên có thể là thập phân, bát phân hoặc thập lục phân. Giá trị bát phân được chỉ định bằng tiền tố 0, trong khi giá trị thập lục phân dùng tiền tố 0x.
Ví dụ
#include <stdio.h>
int main() {
int v1 = 1327;
int v2 = 0x42451;
printf("Giá trị dạng thập phân: %d\n", v1);
printf("Giá trị dạng thập lục phân: %i", v2);
return 0;
}
Kết quả
Giá trị dạng thập phân: 1327 Giá trị dạng thập lục phân: 271441
Tóm lại: %d chỉ chấp nhận đầu vào thập phân, còn %i linh hoạt hơn cho phép nhập cả bát phân (dẫn đầu 0) và thập lục phân (dẫn đầu 0x). Khi xuất ra màn hình, cả hai đều hiển thị dưới dạng thập phân.