14.2.8 Integer Conversions
This section describes the options for the `%d', `%i',
`%o', `%u', `%x', and `%X' conversion
specifications. These conversions print integers in various formats.
The `%d' and `%i' conversion specifications both print an
numeric argument as a signed decimal number; while `%o',
`%u', and `%x' print the argument as an unsigned octal,
decimal, or hexadecimal number (respectively). The `%X' conversion
specification is just like `%x' except that it uses the characters
`ABCDEF' as digits instead of `abcdef'.
The following flags are meaningful:
- `-'
- Left-justify the result in the field (instead of the normal
right-justification).
- `+'
- For the signed `%d' and `%i' conversions, print a
plus sign if the value is positive.
- ` '
- For the signed `%d' and `%i' conversions, if the result
doesn't start with a plus or minus sign, prefix it with a space
character instead. Since the `+' flag ensures that the result
includes a sign, this flag is ignored if you supply both of them.
- `#'
- For the `%o' conversion, this forces the leading digit to be
`0', as if by increasing the precision. For `%x' or
`%X', this prefixes a leading `0x' or `0X' (respectively)
to the result. This doesn't do anything useful for the `%d',
`%i', or `%u' conversions.
- `0'
- Pad the field with zeros instead of spaces. The zeros are placed after
any indication of sign or base. This flag is ignored if the `-'
flag is also specified, or if a precision is specified.
If a precision is supplied, it specifies the minimum number of digits to
appear; leading zeros are produced if necessary. If you don't specify a
precision, the number is printed with as many digits as it needs. If
you convert a value of zero with an explicit precision of zero, then no
characters at all are produced.