C++ - 连接 2 个长字节

C++ - Concat 2 Long long bytes

本文关键字:字节 连接 C++      更新时间:2023-10-16

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

假设我给定了 2 个长字节

长字节1 = B111111111; 长

长字节2 = B10000000;

长效;

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

有没有办法按照我的特定字节顺序连接它?

好吧,如果它只有 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 操作(尽管在这种情况下,+也可以正常工作(。

我认为您可以使用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;