2011-04-18 267 views
5

¿Cómo se puede convertir una variable entera o decimal en una cadena hexagonal? Puedo hacer lo contrario (convertir hex a int) pero no puedo entender de otra manera.¿Convertir entero/decimal a hexadecimal en un Arduino?

Esto es para Serial.print() valores hexadecimales en una matriz.

+0

Danos tu método? ¿Has revisado la documentación de Arduino? –

Respuesta

14

Eche un vistazo al tutorial Arduino String here. El siguiente código fue tomado de ese ejemplo.

// using an int and a base (hexadecimal): 
stringOne = String(45, HEX); 
// prints "2d", which is the hexadecimal version of decimal 45: 
Serial.println(stringOne); 

Hay muchos otros ejemplos de esa página, aunque creo que para números de punto que tendrá que rodar su propia flota.

+0

Solo confirmando lo que dijo Nathan sobre los puntos flotantes. La base de código para admitir la impresión de puntos flotantes se considera demasiado grande para ser incluida por defecto. Una solución simple es multiplicar su número por 100 o más e imprimirlo como un int. – baalexander

2

La biblioteca ofrece Streaming construido en forma de hacerlo:

#include <Streaming.h> 
... 
Serial << "45 in hex is " << _HEX(45) << endl; 

Usted tendrá que descargar la biblioteca de http://arduiniana.org/libraries/streaming/ y colocarlo en un subdirectorio de su carpeta cuaderno de bocetos. El menú File-Preferences le mostrará dónde está eso.

Esta biblioteca también se puede usar cuando se envían a pantallas LCD.

7

Hay una solución simple, sólo tiene que utilizar:

Serial.print(yourVariable, HEX); 
Cuestiones relacionadas