在Arduino上将整数/十进制转换为十六进制?

在Arduino上将整数/十进制转换为十六进制?

问题描述:

如何将整数或十进制变量转换为十六进制字符串?我可以做相反的事情(将hex转换为int),但我无法弄清楚其他方式。在Arduino上将整数/十进制转换为十六进制?

这是用于Serial.print()数组中的十六进制值。

+0

写自己的方法是什么?你有没有检查arduino文档? – 2011-04-18 13:06:00

看看Arduino字符串教程here。下面的代码是从这个例子中获得的。

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

该页面还有很多其他示例,但我认为浮点数字你必须自己推出。

+0

只是确认内森对浮点的说法。支持打印浮点数的代码基准被认为太大而不能被默认包含。一个简单的解决方案是将您的数字乘以100左右,并将其打印为int。 – baalexander 2011-04-18 15:30:26

Streaming库提供了一个内置的方式做到这一点:

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

您将需要从http://arduiniana.org/libraries/streaming/下载库,并将其放置在你的写生簿文件夹中的子目录。菜单文件 - 首选项会告诉你它在哪里。

输出到LCD时也可以使用此库。

有一个简单的解决方案,只需使用:

Serial.print(yourVariable, HEX);