我有一個函數,它需要一個uint64_t
變量。通常我會做到這一點:將字符串轉換爲十六進制到十六進制
irsend.sendNEC(result.value);
result.value
是uint64_t中爲十六進制(我認爲)。如果我這樣做:
String((uint32_t) results.value, HEX)
我得到這個:
FF02FD
如果我做的:
irsend.sendNEC(0x00FF02FD)
它完美的作品,是我想要的。
而不是抓住result.value
,我想寫它作爲一個字符串(因爲這是我從GET請求獲得)。如何將"FF02FD"
分成0x00FF02FD
?
編輯:
也許這使得它更易於理解:
GET: http://192.168.1.125/code=FF02FD
//Arduino grabs the FF02FD by doing:
for (int i = 0; i < server.args(); i++) {
if (server.argName(i) == "code") {
String code = server.arg(i);
irsend.sendNEC(code);
}
}
這是我得到的錯誤:
no matching function for call to 'IRsend::sendNEC(String&)'
因爲:
void sendNEC(uint64_t data, uint16_t nbits = NEC_BITS, uint16_t repeat = 0);
你想C回答或Arduino答案? –
@EugeneSh。呃,Arduino。他們會不一樣嗎? – MortenMoulder
Arduino不是C.它是C和C++的瘋狂組合,以及一些愚蠢的編譯規則。在C使用'strtoll'。 –