30/09/2018, 21:29
Ký tự chuyển dạng trong C
Em có chương trình sau:
#include <stdio.h>
int main(void) {
int x = 10;
long long y = 3478925;
printf("
%lli
%i", x, y);
return 0;
}
Em chạy được x = 14941869100236810, y = 0
Theo em được biết thì em đang dùng ký tự chuyển dạng sai. Nhưng mà em lại không hiểu tại sao lại ra kết quả như vậy. Mong các anh chỉ giáo. Thanks!
Bài liên quan
Bạn sửa
%lli
thành%lld
%i
thành%d
Kết quả:
printf("\n%d\n%lld",x,y);
Dù i hay d thì giá trị in ra vẫn là kiểu số nguyên hệ 10 có dấu 4 bytes . Và lld với lli cũng tưởng tự. Ý của mình là giá trị của biển nguyên có dấu 4 bytes: x = 10 dùng đặc tả là số nguyên có dấu 8 bytes là lli hay lld thì tại sao in ra kết quả như trên.