簡體   English   中英

C++ - 將字符數組轉換為十六進制

[英]C++ - Convert Char Array To Hex

我正在使用Arduino開展一個學校項目,我過去沒有使用C++經驗,我想為每個芯片生成一個唯一的MAC Address 現在我已經構建了一個函數來創建一個包含唯一MAC二維char數組。 它返回如下內容:

// 2D char array example:
char mac[6][2] = {{'A', 'B'}, {'4', 'D'}, {'F', '5'}, {'C', '9'}, {'B', '7'}, {'F', '2'}};

我想把它轉換成這樣的:

// Hex array example:
byte mac[6] = {0xAB, 0x4D, 0xF5, 0xC9, 0xB7, 0xF2};

重要說明:Arduino 不支持STL所以我需要一個不使用它的實現。

如何達到這個結果?

這不是這個問題的重復。

byte HexCharToByte(char c) {
    if (c >= '0' && c <= '9') {
        return c - '0';
    } else if (c >= 'A' && c <= 'F') {
        return c - 'A' + 10;
    } else if (c >= 'a' && c <= 'f') {
        return c - 'a' + 10;
    }
}

void TransformMac(char input[6][2], byte output[6]) {
    for (int i = 0; i < 6; ++i) {
        output[i] = (HexCharToByte(input[i][0]) << 4) | HexCharToByte(input[i][1]); 
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM