tabla sistema que pasar numeros numero entero digitos codigo binarios binario c++ c binary

sistema - pasar un numero entero a binario en c++



Convirtiendo cadenas de 1s y 0s en valores binarios (5)

Puede usar std :: bitset (si la longitud de sus bits se conoce en tiempo de compilación)
Aunque con algún programa podrías dividirlo en pedazos y combinarlo.

#include <bitset> #include <iostream> int main() { std::bitset<5> x(std::string("01011")); std::cout << x << ":" << x.to_ulong() << std::endl; }

Estoy tratando de convertir un sting entrante de 1s y 0s de stdin en sus respectivos valores binarios (donde una cadena como "11110111" se convertiría a 0xF7). Esto parece bastante trivial, pero no quiero reinventar la rueda, así que me pregunto si hay algo en las librerías estándar de C / C ++ que ya pueda realizar tal operación.


Puedes usar strtol

char string[] = "1101110100110100100000"; char * end; long int value = strtol (string,&end,2);


Puede usar Boost Dynamic Bitset:

boost::dynamic_bitset<> x(std::string("01011")); std::cout << x << ":" << x.to_ulong() << std::endl;


He escrito algunas funciones para esto y tengo licencia bajo LGPL. Puede ser encontrado aquí .


#include <stdio.h> #include <stdlib.h> int main(void) { char * ptr; long parsed = strtol("11110111", & ptr, 2); printf("%lX/n", parsed); return EXIT_SUCCESS; }

Para números más grandes, hay una versión long long , strtoll .