2014-01-18 27 views
-6

下面是一個走進我的考試代碼。我評論了那些我不瞭解的觀點。請讓我知道下面的操作員是什麼意思。運營商我因此未明白

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

我看不到谷歌怎麼會不幫你這個問題。 – ScarletAmaranth

+7

我們認真迴避最小的理解。 – ScarletAmaranth

+2

這是教科書的東西。爲什麼不讀一個? –

回答

2
<< >> 

這些都是移位運算符。他們將左操作數按右操作數中給出的位數移位。轉變的方向取決於兩個運營商中的哪一個被使用。

^ 

這是按位異或運算符。結果將會設置兩個操作數中只有一個相應位被設置的位。

& 

這是位AND運算符。結果將在兩個操作數的相應位被設置的位置設置。

| 

這是按位或運算符。結果將設置兩個操作數中至少有一個相應位置位的位。

~ 

這是按位NOT運算符。它是你詢問的唯一操作符(它有一個操作數)。其結果是它的操作數的補碼(每一位被翻轉)。

0

< <是左移運算。而>>是右移操作員。 &是按位和| |是按位還是操作員。 ^是按位異或運算符。 欲瞭解更多詳情請看這裏 BitWise Operators