2013-05-08 29 views
0
#define ISO6391(a,b) ((((b) & 0xff) << 8) | ((a) & 0xff)) 

int main(int argc, char **argv) { 
    int c = ISO6391('a','b'); 
    std::cout<<"c= "<<c<<std::endl; 
} 

我有上面的代碼片段(由供應商寫)到ISO639-1語言代碼(2個字符)複製到一個32位的整數。現在我想提取代碼(從32位整數到字符/字符串)。請幫忙。不知道如何做到這一點!需要幫助到32位整型讀轉換爲charcters

+0

順便說一下,這是一個16位的整數。 – microtherion 2013-05-08 10:13:21

回答

2

這只是上面的宏

char first = c&0xFF; 
char second = (c >> 8)&0xFF; 

的您可能要查找位運算符相反。

+0

謝謝你的作品! GR8 – 2013-05-08 09:56:00