在Arduino上将整数/十进制转换为十六进制?
问题描述:
如何将整数或十进制变量转换为十六进制字符串?我可以做相反的事情(将hex转换为int),但我无法弄清楚其他方式。在Arduino上将整数/十进制转换为十六进制?
这是用于Serial.print()
数组中的十六进制值。
答
看看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);
写自己的方法是什么?你有没有检查arduino文档? – 2011-04-18 13:06:00