Namespaces
Variants

std:: dec, std:: hex, std:: oct

From cppreference.net
< cpp ‎ | io ‎ | manip
Input/output manipulators
Floating-point formatting
Integer formatting
dec hex oct
Boolean formatting
Field width and fill control
Other formatting
Whitespace processing
Output flushing
Status flags manipulation
Time and money I/O
(C++11)
(C++11)
(C++11)
(C++11)
Quoted manipulator
(C++14)
Definido en el encabezado <ios>
(1)
(2)
(3)

Modifica la base numérica predeterminada para la E/S de enteros.

1) Establece el basefield del flujo str a dec como si se llamara a str. setf ( std:: ios_base :: dec , std:: ios_base :: basefield ) .
2) Establece el basefield del flujo str a hex como si se llamara a str. setf ( std:: ios_base :: hex , std:: ios_base :: basefield ) .
3) Establece el basefield del flujo str a oct como si se llamara a str. setf ( std:: ios_base :: oct , std:: ios_base :: basefield ) .

Este es un manipulador de E/S. Puede ser llamado con una expresión como out << std :: hex para cualquier out de tipo std::basic_ostream o con una expresión como in >> std :: hex para cualquier in de tipo std::basic_istream .

Contenidos

Parámetros

str - referencia al flujo de E/S

Valor de retorno

str (referencia al flujo después de la manipulación).

Ejemplo

#include <bitset>
#include <iostream>
#include <sstream>
int main()
{
    std::cout << "El número 42 en octal:   " << std::oct << 42 << '\n'
              << "El número 42 en decimal: " << std::dec << 42 << '\n'
              << "El número 42 en hexadecimal:     " << std::hex << 42 << '\n';
    int n;
    std::istringstream("2A") >> std::hex >> n;
    std::cout << std::dec << "Analizando \"2A\" como hexadecimal da " << n << '\n';
    // la base de salida es persistente hasta que se cambie
    std::cout << std::hex << "42 como hexadecimal da " << 42
        << " y 21 como hexadecimal da " << 21 << '\n';
    // Nota: no existe un manipulador de E/S que configure un flujo para mostrar
    // números en formato binario (por ejemplo, bin). Si es necesaria la salida binaria
    // se puede utilizar el truco de std::bitset:
    std::cout << "El número 42 en binario:  " << std::bitset<8>{42} << '\n';
}

Salida:

El número 42 en octal:   52
El número 42 en decimal: 42
El número 42 en hexadecimal:     2a
Analizando "2A" como hexadecimal da 42
42 como hexadecimal da 2a y 21 como hexadecimal da 15
El número 42 en binario:  00101010

Véase también

cambia la base utilizada para E/S de enteros
(función)
controla si se utiliza prefijo para indicar la base numérica
(función)