Next: Floating-Point Conversions, Previous: Table of Output Conversions, Up: C-Style I/O Functions [Contents][Index]

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.