位操作员

Bob*_*obS 1 c++ bit-manipulation bit-shift bit

如果我有两个十六进制的东西,我可以有人如何将它们的二进制加在一起得到一个值吗?

在C++中,说我有

unsigned char t = 0xc2;  // 11000010
unsigned char q = 0xa3;  // 10100011
Run Code Online (Sandbox Code Playgroud)

我想要的是,以某种方式, 1100001010100011使用逐位运算符可能吗?

我想提取t和q的二进制形式并附加它们......

Bri*_*ndy 19

是的,这是可能的.

只需使用left-bitshift运算符,使用至少16位整数向左移动8.然后将二进制OR或第二个值转换为整数.

unsigned char t = 0xc2; // 11000010 
unsigned char q = 0xa3; // 10100011
unsigned short s = (((unsigned short)t)<<8) | q; //// 11000010 10100011
Run Code Online (Sandbox Code Playgroud)

或者将两个值放在包含2个字符的小区中(小心大端或小字节)将具有相同的位级结果.另一种选择是char [2].