Document that "#x" adds prefix "0x" and "#X" adds "0X". Addresses part of issue https://github.com/vitaut/format/issues/5

This commit is contained in:
Victor Zverovich 2013-11-16 21:06:07 -08:00
parent 2aa4cd9827
commit 0563aca180

View File

@ -115,7 +115,7 @@ The general form of a *standard format specifier* is:
sign: "+" | "-" | " " sign: "+" | "-" | " "
width: `integer` width: `integer`
precision: `integer` | "{" `arg_index` "}" precision: `integer` | "{" `arg_index` "}"
type: "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "o" | "p" | s" | "x" | "X" | "b" | "B" type: "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "o" | "p" | s" | "x" | "X"
The *fill* character can be any character other than '{' or '}'. The presence The *fill* character can be any character other than '{' or '}'. The presence
of a fill character is signaled by the character following it, which must be of a fill character is signaled by the character following it, which must be
@ -167,9 +167,12 @@ following:
The ``'#'`` option causes the "alternate form" to be used for the The ``'#'`` option causes the "alternate form" to be used for the
conversion. The alternate form is defined differently for different conversion. The alternate form is defined differently for different
types. This option is only valid for integer and floating-point types. types. This option is only valid for integer and floating-point types.
For integers, when octal, or hexadecimal, or binary output For integers, when binary, octal, or hexadecimal output is used, this
is used, this option adds the prefix respective ``'0'``, or option adds the prefix respective ``"0b"`` (``"0B"``), ``"0"``, or
``'0x'``, or ``'0b'`` to the output value. For floating-point numbers the ``"0x"`` (``"0X"``) to the output value. Whether the prefix is
lower-case or upper-case is determined by the case of the type
specifier, for example, the prefix ``"0x"`` is used for the type ``'x'``
and ``"0X"`` is used for ``'X'``. For floating-point numbers the
alternate form causes the result of the conversion to always contain a alternate form causes the result of the conversion to always contain a
decimal-point character, even if no digits follow it. Normally, a decimal-point character, even if no digits follow it. Normally, a
decimal-point character appears in the result of these conversions decimal-point character appears in the result of these conversions
@ -225,21 +228,21 @@ The available integer presentation types are:
+---------+----------------------------------------------------------+ +---------+----------------------------------------------------------+
| Type | Meaning | | Type | Meaning |
+=========+==========================================================+ +=========+==========================================================+
| ``'b'`` | Binary format. Outputs the number in base 2. |
+---------+----------------------------------------------------------+
| ``'d'`` | Decimal integer. Outputs the number in base 10. | | ``'d'`` | Decimal integer. Outputs the number in base 10. |
+---------+----------------------------------------------------------+ +---------+----------------------------------------------------------+
| ``'o'`` | Octal format. Outputs the number in base 8. | | ``'o'`` | Octal format. Outputs the number in base 8. |
+---------+----------------------------------------------------------+ +---------+----------------------------------------------------------+
| ``'x'`` | Hex format. Outputs the number in base 16, using | | ``'x'`` | Hex format. Outputs the number in base 16, using |
| | lower-case letters for the digits above 9. | | | lower-case letters for the digits above 9. Using the |
| | ``'#'`` option with this type adds the prefix ``"0x"`` |
| | to the output value. |
+---------+----------------------------------------------------------+ +---------+----------------------------------------------------------+
| ``'X'`` | Hex format. Outputs the number in base 16, using | | ``'X'`` | Hex format. Outputs the number in base 16, using |
| | upper-case letters for the digits above 9. | | | upper-case letters for the digits above 9. Using the |
+---------+----------------------------------------------------------+ | | ``'#'`` option with this type adds the prefix ``"0X"`` |
| ``'b'`` | Binary format. Outputs the number in base 2, using | | | to the output value. |
| | a lower-case 0b if a prefix is requested. |
+---------+----------------------------------------------------------+
| ``'B'`` | Binary format. Outputs the number in base 2, using |
| | a upper-case 0B if a prefix is requested. |
+---------+----------------------------------------------------------+ +---------+----------------------------------------------------------+
| none | The same as ``'d'``. | | none | The same as ``'d'``. |
+---------+----------------------------------------------------------+ +---------+----------------------------------------------------------+
@ -355,7 +358,7 @@ Replacing ``%+f``, ``%-f``, and ``% f`` and specifying a sign::
Format("{:-f}; {:-f}") << 3.14 << -3.14; // show only the minus -- same as '{:f}; {:f}' Format("{:-f}; {:-f}") << 3.14 << -3.14; // show only the minus -- same as '{:f}; {:f}'
// Result: "3.140000; -3.140000" // Result: "3.140000; -3.140000"
Replacing ``%x`` and ``%o`` and ``%b`` and converting the value to different bases:: Replacing ``%x`` and ``%o`` and converting the value to different bases::
Format("int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}") << 42; Format("int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}") << 42;
// Result: "int: 42; hex: 2a; oct: 52; bin: 101010" // Result: "int: 42; hex: 2a; oct: 52; bin: 101010"