2011-04-18 2727 views
5

如何將整數或十進制變量轉換爲十六進制字符串?我可以做相反的事情(將hex轉換爲int),但我無法弄清楚其他方式。在Arduino上將整數/十進制轉換爲十六進制?

這是用於Serial.print()數組中的十六進制值。

+0

寫自己的方法是什麼?你有沒有檢查arduino文檔? – 2011-04-18 13:06:00

回答

14

看看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

2

Streaming庫提供了一個內置的方式做到這一點:

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

您將需要從http://arduiniana.org/libraries/streaming/下載庫,並將其放置在你的寫生簿文件夾中的子目錄。菜單文件 - 首選項會告訴你它在哪裏。

輸出到LCD時也可以使用此庫。

7

有一個簡單的解決方案,只需使用:

Serial.print(yourVariable, HEX);