以下是我的考试中的代码。我评论了那些我不理解的观点。请告诉我以下操作员的意思。
int main()
{
float ans=4;
ans*=10;
cout<<ans++<<endl;
ans-=22;
cout<<++ans<<endl;
ans/=4;
cout<<ans<<endl;
ans=int(ans)<<4; // WHAT is meant by <<4?
cout<<ans<<endl;
ans=int(ans)>>3; // WHAT is meant by >>4?
cout<<ans<<endl;
ans=int(ans)^0x000F; // WHAT is meant by ^0x000F?
cout<<hex<<ans<<endl;
ans=int(ans)&0x00F0; // WHAT is meant by &0x00F0?
cout<<hex<<ans<<endl;
cout<<hex<<(0x3567 & 0xF0f0)<<endl; // WHAT is meant by (0x3567 & 0xF0f0)?
cout<<hex<<(0x3567 | 0xF0f0)<<endl; // WHAT is meant by (0x3567 | 0xF0f0)?
cout<<hex<<~0x3567<<endl; // WHAT is meant by ~0x3567
getch();
return 0;
}
答案 0 :(得分:2)
<< >>
这些是移位运算符。它们将左操作数移位右操作数中给出的位数。转变的方向取决于使用两个运营商中的哪一个。
^
这是按位异或运算符。结果将设置位,其中只设置两个操作数中的一个相应位。
&
这是按位AND运算符。结果将设置位,其中两个操作数中的相应位都已设置。
|
这是按位包含OR运算符。结果将设置位,其中两个操作数中的至少一个相应位被设置。
~
这是按位NOT运算符。它是你问过的唯一的一元运算符(它有一个操作数)。结果是其操作数的一个补码(每个位都被翻转)。
答案 1 :(得分:0)
&LT;&LT;是左移操作员。和&gt;&gt;是右移操作员。 &安培;是按位和|和是按位或运算符。 ^是按位xor运算符。 有关详细信息,请参阅此处 BitWise Operators