15. ビット演算

15. ビット演算

論理シフトと算術シフト

lesson 037

class Lesson037 {
    public static void main(String args[]) {
        int count,b_shift;

        b_shift = 1;
        for (count = 0 ; count <= 32 ; count++) {
            System.out.println(b_shift);
            b_shift <<= 1;
        }

        b_shift = -2147483648;
        for (count = 0 ; count <= 32 ; count++) {
            System.out.println(b_shift);
            b_shift >>= 1;
        }

        b_shift = -2147483648;
        for (count = 0 ; count <= 32 ; count++) {
            System.out.println(b_shift);
            b_shift >>>= 1;
        }
    }
}

実行結果

L:\>java Lesson037
1
2
4
8
16
32
64
128
256
512
1024
2048
4096
8192
16384
32768
65536
131072
262144
524288
1048576
2097152
4194304
8388608
16777216
33554432
67108864
134217728
268435456
536870912
1073741824
-2147483648
0
-2147483648
-1073741824
-536870912
-268435456
-134217728
-67108864
-33554432
-16777216
-8388608
-4194304
-2097152
-1048576
-524288
-262144
-131072
-65536
-32768
-16384
-8192
-4096
-2048
-1024
-512
-256
-128
-64
-32
-16
-8
-4
-2
-1
-1
-2147483648
1073741824
536870912
268435456
134217728
67108864
33554432
16777216
8388608
4194304
2097152
1048576
524288
262144
131072
65536
32768
16384
8192
4096
2048
1024
512
256
128
64
32
16
8
4
2
1
0