#include <iostream> using namespace std; int main(){ int a=0xfffffff0; cout << hex << a << endl; a <<=1; cout << hex << a << endl; a >>=1; cout << hex << a << endl; } 结果是: 0xfffffff0 0xffffffe0 0xfffffff0 当有符号位的负数往左移,右边会补上0,但是往右移的时候,左边会补上符号位