#include<iostream> using namespace std; int main(){ int a = -3; cout<<(a>>1)<<endl; cout<<(a/2)<<endl; }
这两个结果还不一样,对于补码来讲确实应该得等于-2,但是c语言的除2尽然等于-1,难道c语言不是简单的把除2转化为了右移两位!!!