Javaちょこっとリファレンス
HOME > シフト演算

シフト演算

シフト演算のサンプルです。

サンプルコード

シフト演算のサンプル
public class ShiftSample {

    public static void main(String args[]) {

        //シフト演算
        int a = 16;
        System.out.println(a<<1); //1ビット左シフト
        System.out.println(a<<2); //2ビット左シフト
        System.out.println(a>>1); //1ビット右シフト
        System.out.println(a>>2); //2ビット右シフト

    }

}

実行結果
C:\>java ShiftSample 32 64 8 4

シフト演算解説

シフト演算は、まず対象の数値を2進数にして考えます。
そしてその2進数のビットを左右にずらして数値を変えます。

上記サンプルで解説しますと、元となる数字16を2進数にすると、
「00010000」(=16)です。

これを1ビット左シフトさせると、全てのビットを左へ1つずつずらすことになるので、
「00100000」(=32)となります。
(ずらすことで1桁目に必要となる部分にはゼロを入れます。)

同じように元の数字を2ビット左シフトさせると、
「01000000」(=64)となります。

今度は元の数字を1ビット右シフトさせると、
「00001000」(=8)となります。

もうお分かりだと思いますが、桁落ちしない限り
左シフトさせると2倍、4倍、8倍・・・となり、
右シフトさせると1/2倍、1/4倍、1/8倍となりますので、
こういった倍数の計算は簡単にできるということです。

また、コンピュータが理解しやすい形式なので処理速度も速いです。

数値・演算カテゴリ

HOMEへ戻る TOPへ戻る