c++ - 需要帮助将 32 位整数 r 转换为字符

标签 c++

#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 位整数到字符/字符串)。请帮忙。不知道该怎么做!

最佳答案

就是把上面的宏倒过来

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

您可能想要查找位运算符

关于c++ - 需要帮助将 32 位整数 r 转换为字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16437416/

相关文章:

c++ - SIGINT 处理和 getline

C++ 未定义行为与否? (再次)

c++ - <work.exe>0xC0000005 : Access violation reading location 0x00000000 中 0x002a2da2 处的 NVIDIA 未处理异常

c++ - 在类的成员函数定义中使用 (::)

c++ - 为什么在模板化 lambda 时编译器生成的代码不同?

C++ 对结构和类的按位运算

c++ - MyRectangle mr = MyRectangle(); 有什么区别?和我的矩形 mr2 ();

c++ - 更快地标准化下三角矩阵

c++ - sprof 如何找到我的共享库

c++ - std::bind 可变参数模板成员函数和通用引用