01/10/2018, 15:53
Tại sao printf("%i", 056) ra 46?
Cho em hỏi vì sao khi
printf("%i", 056);
lại cho ra màn hình số 46 ạ.
Em cám ơn.
Bài liên quan
Cho em hỏi vì sao khi
printf("%i", 056);
lại cho ra màn hình số 46 ạ.
Em cám ơn.
Mình có đọc được từ một trang nào đó nói rằng, nếu printf mà truyền vào một số có số 0 ở đẩu thì nó sẽ cho rằng số đó thuộc hệ bát phân chuyển thành thập phân.ó
stackoverflow.com
Như số bạn truyền vào là 056 thì nó sẽ in ra 010^2 + 510^1 + 6*10^0 = 46
Mình giải thích có thể hơi khó hiều nên bạn có thể đọc ở
%i or %d to print integer in c using printf()?
46 đúng rồi còn %i chỉ có ý nghĩa với scanf thôi, của printf thì giống %d.
Cám ơn bạn nha. Mình hiểu rồi.