2011-04-18 23 views
5

Comment une variable entière ou décimale peut-elle être convertie en chaîne hexadécimale? Je peux faire le contraire (convertir hex en int) mais je ne peux pas comprendre l'autre sens.Convertir un nombre entier/décimal en hexadécimal sur un Arduino?

Ceci est pour Serial.print() valeurs hexadécimales dans un tableau.

+0

Écrivez votre propre méthode? Avez-vous vérifié la documentation d'arduino? –

Répondre

14

Jetez un coup d'œil au didacticiel sur les cordes Arduino here. Le code ci-dessous a été pris à partir de cet exemple.

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

Il y a beaucoup d'autres exemples sur cette page, mais je pense que pour les nombres à virgule flottante, vous devez rouler votre propre.

+0

Juste pour confirmer ce que Nathan a dit à propos des points flottants. La base de code pour prendre en charge l'impression de points flottants est considérée trop grande pour être incluse par défaut. Une solution simple est de multiplier votre nombre par 100 ou plus et l'imprimer comme un int. – baalexander

2

La bibliothèque offre Streaming construit dans le moyen de le faire:

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

Vous devrez télécharger la bibliothèque de http://arduiniana.org/libraries/streaming/ et le placer dans un sous-répertoire de votre dossier Sketchbook. Le menu Fichier-Préférences vous montrera où c'est.

Cette bibliothèque peut également être utilisée lors de la sortie sur les écrans LCD.

7

Il y a une solution simple, il suffit d'utiliser:

Serial.print(yourVariable, HEX); 
Questions connexes