Hola el o otro día me vi en la necesidad de pasar un número binario a decimal y encontre un código que modifique y lo adapte para arduino. Ahora necesito hacer lo contrario, pasar un número Decimal a Binario alguien conoce alguna libreria que realice este tipo de conversiones? ya que igual estoy perdiendo el tiempo programando cosas que ya están programadas con anterioridad por ser necesidades muy frecuentes.
noter si supieras que me interesa mucho este tema. Quisiera hacer un pequeño código que reciba un decimal por el monitor serial y me muestre su equivalente en binario y viceversa, que pueda ingresar un numero binario y me muestre su equivalente en decimal.
noter:
¿Te valdría por ejemplo Serial.print (var,BIN)?
Hola gracias por tu respuesta, pero lamentablemente no me sirve puesto que necesito meter esa información en una variable a ser posible como string para luego componer una trama de datos para posteriormente pasarla por el serial al PC y no me interesa el trasmitir ningún datos que no sea necesario por el puerto serial.
Revisando la web, acá encontré algo, no se si te sirva:
String stringOne = "Hello String"; // using a constant String
String stringOne = String('a'); // converting a constant char into a String
String stringTwo = String("This is a string"); // converting a constant string into a String object
String stringOne = String(stringTwo + " with more"); // concatenating two strings
String stringOne = String(13); // using a constant integer
String stringOne = String(analogRead(0), DEC); // using an int and a base
String stringOne = String(45, HEX); // using an int and a base (hexadecimal)
String stringOne = String(255, BIN); // using an int and a base (binary)
String stringOne = String(millis(), DEC); // using a long and a base
String stringOne = String(5.698, 3); // using a float and the decimal places
Cuando envías por puerto serial un dato, por ejemplo un entero o una cadena, lo que viaja por el medio es binario. No necesitas descomponerlo. Si lo que deseas es, por ejemplo, extraer manualmente los bits para codificarlos (por ejemplo mediante un infrarrojo), lo puedes hacer mediante operadores de bit. Aquí tendrías un ejemplo de ambas conversiones:
void setup() {
unsigned long a=12345678;
Serial.begin(9600);
for (int i=31; i>=0; i--) {
Serial.print(a & (1<<i)?1:0);
}
Serial.println();
char *b="1010000010100011";
a=0;
for (int i=0; i<strlen(b); i++) {
a<<=1;
a |= (b[i]=='1'?1:0);
}
Serial.println(a);
}
void loop() {
}