2016-07-24 27 views
0

私はWiFiチップのMACアドレスを含む6要素のバイト配列を持っています。これをどのように単一の値に変換するのですか?例えば、配列の場合:208181194193114219表現で、基本的にすべての桁の連結です:数字へのバイト配列

mac[0] = 208 
mac[1] = 181 
mac[2] = 194 
mac[3] = 193 
mac[4] = 114 
mac[5] = 219 

は、どのように私はこのような値を取得します。

個別のMAC IDを0xFFhでANDしてから、左にビットシフトしましたが、値は3250763216です。これはコードです:

uint32_t deviceID = 0; 
for (int i = 0; i < 6; i++) 
{ 
    deviceID += (mac[i] & 0xFFh) << (8 * i); 
} 
Serial.print("Device ID : "); Serial.println(deviceID); 

答えて

1

あなたがこれを行うことができます:

#include <iostream> 
#include <sstream> 

int main() { 
    std::stringstream ss; 


    int mac[] = {208,181,194,193,114,219}; 

    for (unsigned i = 0; i < sizeof mac/sizeof mac[0]; ++i) 
     ss << mac [i]; 

    int result; 
    ss >> result; 
    std::cout << result; //208181194193114219 
} 
+0

私はC++でこれを行う方法を知っておく必要があります。 – hpb

+0

申し訳ありませんが、再度回答を確認してください。 –