我是编程新手,我正在学习位移。
假设我有2个长长字节
long long bytes1 = b11111111; long long bytes2 = b10000000;
漫长的结果;
我想连接2个字节,以便结果变量保持:= 1000000011111111
有没有办法如何以我特定的字节顺序连接它?
答案 0 :(得分:0)
好吧,如果只有8位宽,则不需要数据类型long long
。 uint8_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;