int a = -10;
int b = 2;
int c = a >> b;
# 현재의 컴퓨터는 음수를 2의 보수로 나타냄
-10 -> 00000000 00000000 00000000 00001010
1의 보수 -> 11111111 11111111 11111111 11110101
2의 보수 -> 11111111 11111111 11111111 11110110 (컴퓨터가 나타내는 -10)
# int c = a >> b; //(부호비트를 채움)
c -> 11111111 11111111 11111111 11111101 (-3)
다시 1을 뺀후 -> 11111111 11111111 11111111 11111100
다시 1의 보수로 바꾸면 -> 00000000 00000000 00000000 00000011 (3)
# int c = a >>> b; //(0을 채움)
-10 -> 11111111 11111111 11111111 11110110
쉬프트 -> 00111111 11111111 11111111 11111101 (1073741821)
int b = 2;
int c = a >> b;
# 현재의 컴퓨터는 음수를 2의 보수로 나타냄
-10 -> 00000000 00000000 00000000 00001010
1의 보수 -> 11111111 11111111 11111111 11110101
2의 보수 -> 11111111 11111111 11111111 11110110 (컴퓨터가 나타내는 -10)
# int c = a >> b; //(부호비트를 채움)
c -> 11111111 11111111 11111111 11111101 (-3)
다시 1을 뺀후 -> 11111111 11111111 11111111 11111100
다시 1의 보수로 바꾸면 -> 00000000 00000000 00000000 00000011 (3)
# int c = a >>> b; //(0을 채움)
-10 -> 11111111 11111111 11111111 11110110
쉬프트 -> 00111111 11111111 11111111 11111101 (1073741821)