C ++ - Concat 2长字节

时间:2018-01-04 14:33:42

标签: c++

我是编程新手,我正在学习位移。

假设我有2个长长字节

long long bytes1 = b11111111; long long bytes2 = b10000000;

漫长的结果;

我想连接2个字节,以便结果变量保持:= 1000000011111111

有没有办法如何以我特定的字节顺序连接它?

2 个答案:

答案 0 :(得分:0)

好吧,如果只有8位宽,则不需要数据类型long longuint8_t正好是8位宽。

uint8_t bytes1 = b11111111;
uint8_t bytes2 = b10000000;

结果将是16位宽,如uint16_t

uint16_t result1 = (bytes2 << 8) | bytes1; // will be b1000000011111111
uint16_t result2 = (bytes1 << 8) | bytes2; // will be b1111111110000000

<<运算符向左移位,而|运算符执行二进制OR运算(尽管在这种情况下,+也可以正常工作)。< / p>

答案 1 :(得分:-2)

我认为你可以使用LARGEINTEGER。例如:

LONGLONG byte1 = 10000000;
LONGLONG byte2 = 11111111;
LARGE_INTEGER largeInteger;
largeInteger.LowPart = byte1;
largeInteger.HighPart = byte2;
cout<< largeInteger.HighPart << largeInteger.LowPart;

或者您可以使用字符串

LONGLONG llByte1 = 10000000;
LONGLONG llByte2 = 11111111;
string sBytes = std::to_string(llByte1);
sBytes.append(std::to_string(llByte2));
LONGLONG llBytes = atoll(sBytes.c_str());
cout << endl << "llBytes "<<llBytes << endl;