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.

Kuroemon viết 17:56 ngày 01/10/2018

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 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 ở

stackoverflow.com
Dummy Code

%i or %d to print integer in c using printf()?

c, console, integer, int
asked by Dummy Code on 08:16PM - 26 Jun 13

rogp10 viết 17:59 ngày 01/10/2018

46 đúng rồi còn %i chỉ có ý nghĩa với scanf thôi, của printf thì giống %d.

Đỗ Đăng Khôi viết 17:53 ngày 01/10/2018

Cám ơn bạn nha. Mình hiểu rồi.

Bài liên quan
0