如果我有两个十六进制的东西,我可以有人如何将它们的二进制加在一起得到一个值吗?
在C++中,说我有
unsigned char t = 0xc2; // 11000010 unsigned char q = 0xa3; // 10100011
我想要的是,以某种方式,
1100001010100011
使用逐位运算符可能吗?
我想提取t和q的二进制形式并附加它们......
是的,这是可能的.
只需使用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
或者将两个值放在包含2个字符的小区中(小心大端或小字节)将具有相同的位级结果.另一种选择是char [2].