Cho em hỏi vì sao khi
printf("%i", 056);
lại cho ra màn hình số 46 ạ.
Em cám ơn.
Tại sao printf("%i", 056) ra 46?
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 đó.
Như số bạn truyền vào là 056 thì nó sẽ in ra 0*8^2 + 5*8^1 + 6*8^0 = 46
Mình giải thích có thể hơi khó hiều nên bạn có thể đọc ở
7 Likes
46 đúng rồi còn %i chỉ có ý nghĩa với scanf thôi, của printf thì giống %d.
3 Likes
Cám ơn bạn nha. Mình hiểu rồi.