>>右シフト演算子


>>は右シフト演算子です.
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;
}