下列程序中,result 和 result2 输出分别是( )
long a = 123;
int b = 1;
long result = a & b;
cout << result << endl;
long a2 = -123;
unsigned int b2 = -1;
long result2 = a2 & b2;
cout << result2 << endl;看到无符号赋负值 → 先想补码全1;看到按位与 → 先想低位保留。
易错:忽略无符号类型接受负数;误以为 -1 提升为 long 后仍全1。
考点:位运算(按位与)|有符号/无符号整数表示|类型提升
result 为 1;result2 为 -123。