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. (Java) Especifique el número de bits (longitud) al convertir un número binario en una cadena?
- 25. Convertir el archivo Intel HEX en el archivo binario
- 26. Conversión de archivo binario a cadena Base64
- 27. Convertir el valor hexadecimal en bigint
- 28. Convertir archivo PHP a binario
- 29. archivo binario a cadena
- 30. Convertir decimal a binario Vector
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