What is the difference between %d and %i
What are %d and %i
Format specifiers are used in C programming for letting the compiler understand , the nature of the data that the programmer is working upon.
%d and %i are two such format specifiers which are used for working with integer data type.
Although both of them can be used for printing an integer value, but there is a slight difference between them, when they are used for accepting a value through scanf.
Difference in the use of %d and %i
Both %d and %i are used when we are working with integer data type, they both behave similarly while printing a integer value, but when they are used with scanf, for accepting a integer value, there is a slight difference in their property
- While accepting a integer value %d simple takes the base of the value as 10(decimal).
- But, if we use %i while accepting the integer value, it takes the base(decimal, octal, hexadecimal) of the value, depending upon the value entered.
- For Example,
- If we enter 21, it will return 21 as decimal
- If we enter 021, it will take it as octal and will return 17
- And, if we enter 0x21, it will take it as hexa-decimal and will return 33
Use of %d
#include <stdio.h> int main() { int a, b, c; printf("Enter a value in decimal format:"); scanf("%d", &b); printf("Enter Enter a value in octal format: "); scanf("%d", &b); printf("Enter Enter a value in hexadecimal format: "); scanf("%d", &c); printf("Enter a = %d, b = %d, c = %d", a, b, c); return 0; }
Output
Enter a value in decimal format:1792 Enter Enter a value in octal format: 01792 Enter Enter a value in hexadecimal format: 0x1792 Enter a = 32767, b = 1792, c = 0
Use of %i
#include <stdio.h> int main() { int a, b, c; printf("Enter a value in decimal format:"); scanf("%i", &b); printf("Enter a value in octal format: "); scanf("%i", &b); printf("Enter a value in hexadecimal format: "); scanf("%i", &c); printf("a = %i, b = %i, c = %i", a, b, c); return 0; }
Output
Enter a value in decimal format:21 Enter a value in octal format: 021 Enter a value in hexadecimal format: 0x21 a = 32764, b = 17, c = 33
Prime Course Trailer
Related Banners
Get PrepInsta Prime & get Access to all 200+ courses offered by PrepInsta in One Subscription
Get over 200+ course One Subscription
Courses like AI/ML, Cloud Computing, Ethical Hacking, C, C++, Java, Python, DSA (All Languages), Competitive Coding (All Languages), TCS, Infosys, Wipro, Amazon, DBMS, SQL and others
Login/Signup to comment