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 esa operación.Convertir cadena de 1s y 0s en el valor binario
Respuesta
#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 los números más grandes, como una versión long long
, strtoll
.
Esto se ve bien. Mi única preocupación era en cadenas muy grandes, que pensando en ello ahora, probablemente necesitaría algún código personalizado de todos modos. – grosauro
Además de strtol también hay un paseo (dos L) para enteros "largos". – jkramer
Ah, ahora veo tu punto. La longitud de la cuerda no debería ser un problema, siempre y cuando el número resultante encaje en el entero largo o largo. – jkramer
Puede utilizar strtol
char string[] = "1101110100110100100000";
char * end;
long int value = strtol (string,&end,2);
Puede usar std :: bitset (si la longitud de los bits se conoce en tiempo de compilación)
Aunque con algún programa puede dividirlo en fragmentos y combinar.
#include <bitset>
#include <iostream>
int main()
{
std::bitset<5> x(std::string("01011"));
std::cout << x << ":" << x.to_ulong() << std::endl;
}
Puede utilizar refuerzo dinámico Bitset:
boost::dynamic_bitset<> x(std::string("01011"));
std::cout << x << ":" << x.to_ulong() << std::endl;
- 1. Cómo convertir un binario (cadena) en un valor flotante?
- 2. convertir el valor doble en el valor binario
- 3. Cómo convertir NSInteger a un valor binario (cadena)
- 4. Creación de una matriz m por n de 0s y 1s de-m de tamaño vector de índices de columnas
- 5. algo muy optimizado para ordenar una matriz que consta de solo 0s n 1s
- 6. Retire 0s desde el final de un valor decimal
- 7. Convertir cadena de dirección IP a binario en Python
- 8. Convertir cadena de formato binario a int, en C
- 9. ¿Cómo convertir una cadena a ascii en binario en C#?
- 10. Convertir DateTime Valor en cadena en MySQL
- 11. Cómo convertir el maleficio al iphone binario
- 12. ¿Cómo convertir una cadena o entero a binario en Ruby?
- 13. Cómo convertir el binario al decimal
- 14. Convertir una cadena (como testing123) A binario En Java
- 15. Convertir términos de erlang a cadena o decodificar erlang binario
- 16. En Erlang, ¿cómo convierto una Cadena en un valor binario?
- 17. cómo convertir el valor de uint64_t en cadena const char?
- 18. Convertir Enum SUBYACENTE Valor entero en Cadena
- 19. ¿Convertir imagen a binario?
- 20. Convertir cadena a valor de Enum equivalente
- 21. Convertir hexadecimal a binario en MySQL
- 22. Cómo convertir el valor de UUID a la cadena
- 23. Convertir Binary.toString ('encode64') de nuevo a binario
- 24. Convertir el archivo Intel HEX en el archivo binario
- 25. Conversión de archivo binario a cadena Base64
- 26. Convertir archivo PHP a binario
- 27. Convertir el valor hexadecimal en bigint
- 28. archivo binario a cadena
- 29. Convertir decimal a binario Vector
- 30. Convertir cadena binaria en número entero
No deberes. Estoy tratando de incorporar un convertidor para facilitar la lectura en un conjunto de herramientas de depuración, pero todas nuestras entradas vienen en formato de cadena. – grosauro