>>右シフト演算子
729 ワード
>>は右シフト演算子です.
x=5と仮定すると、xのバイナリは0101であり、x>>1はxが1ビット右にシフトしたことを示し、すなわち最も右の1ビットの1を削除し、010に変化し、このときx=2である.依然としてx=5とし,バイナリ0101,x>>2はxが2ビット右にシフトすることを示し,最も右の2ビットの01を外して01とし,このときx=1とする.x>>=1はx=x>>1に等価であり、x+=1とx=x+1に等価であるのは一つの道理である.
PS:x>>=1はx=x/2に相当する.
C++の例:
x=5と仮定すると、xのバイナリは0101であり、x>>1はxが1ビット右にシフトしたことを示し、すなわち最も右の1ビットの1を削除し、010に変化し、このときx=2である.依然としてx=5とし,バイナリ0101,x>>2はxが2ビット右にシフトすることを示し,最も右の2ビットの01を外して01とし,このときx=1とする.x>>=1はx=x>>1に等価であり、x+=1とx=x+1に等価であるのは一つの道理である.
PS:x>>=1はx=x/2に相当する.
C++の例:
#include
#include
using namespace std;
int main()
{
int n;
while (cin >> n && n)
{
cout << n << endl;
while (n)
{
cout << n << " / 2 = ";
n = n >> 1; // n >>= 1;
cout << n << endl;
}
}
return 0;
}