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

11

如何将整数或小数变量转换为十六进制字符串?我可以做相反的操作(将十六进制转换为整数),但我无法弄清楚另一种方式。

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

3个回答

34

请查看Arduino String教程这里。下面的代码来自该示例。

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

那个页面上还有很多其他的示例,但我认为对于浮点数,你需要自己编写代码。


只是确认一下Nathan关于浮点数的说法。支持打印浮点数的代码库被认为太大而不能默认包含在内。一个简单的解决方案是将您的数字乘以100左右,然后将其作为整数打印出来。 - baalexander

10

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

Serial.print(yourVariable, HEX);

2

Streaming库提供了一种内置的方法来实现这个功能:

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

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接