在下列代码的横线处填写( ),可以使得输出是“20 10”。
#include <iostream>
using namespace std;
int main() {
int a = 10, b = 20;
a = (a << 8) | b;
______ // 在此处填入代码
cout << a << " " << b << endl;
return 0;
}看到位运算打包拆包 → 先取高位赋给 b,再清高位留低位给 a
顺序颠倒会先污染 a 再取位,导致高低位数值互换或丢失
考点:位运算(左移、右移、按位或、按位与)|二进制打包拆包
执行 a = (a << 8) | b 后,a 的高 8 位是 10,低 8 位是 20。要输出“20 10”,需将高位 10 取出赋给 b,再将低位 20 保留给 a。