【问题标题】:Convert integer/decimal to hex on an Arduino?在Arduino上将整数/十进制转换为十六进制?
【发布时间】:2011-04-18 12:33:01
【问题描述】:

如何将整数或十进制变量转换为十六进制字符串?我可以做相反的事情(将十六进制转换为整数),但我不知道其他方式。

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

【问题讨论】:

    标签: arduino


    【解决方案1】:

    看看 Arduino String 教程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);  
    

    该页面上还有很多其他示例,但我认为对于浮点数,您必须自己动手。

    【讨论】:

    • 只是确认 Nathan 所说的浮点数。默认情况下,支持打印浮点的代码库被认为太大而无法包含在内。一个简单的解决方案是将您的数字乘以 100 左右并将其打印为 int。
    【解决方案2】:

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

    Serial.print(yourVariable, HEX);
    

    【讨论】:

      【解决方案3】:

      Streaming 库提供了一种内置方式来执行此操作:

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

      您需要从http://arduiniana.org/libraries/streaming/ 下载库并将其放置在 Sketchbook 文件夹的子目录中。 Menu File-Preferences 会告诉你那个位置。

      这个库也可以在输出到 LCD 时使用。

      【讨论】:

        猜你喜欢
        • 2010-10-16
        • 2014-04-16
        • 1970-01-01
        • 1970-01-01
        • 2015-01-26
        • 1970-01-01
        相关资源
        最近更新 更多