는 다음 자바 코드를 고려자바 시프트 연산자
byte a = -64;
System.out.println(a << 1);
코드의 출력은 -128
이 출력 이유를 파악하기 위해 다음과 같이 I 시도 :
64 = 0 1000000 (MSB는 부호 비트)
-64 = 1 1000000 (토우의 보완 형식)
이동 후 예상 출력 : 1 0000000 (MSB는 부호 비트이기 때문에 0과 같습니다)
내가 누락 된 부분을 설명해 주실 수 있습니다.
부호 비트가 무시되는 경우 결과가 부호있는 (음수) 숫자가되는 방법?! – siva636
"무시 된"단어는 옳은 단어라고 생각하지 않지만, 요점은 생각했던대로'10000000 == -128'이 아니라 '0'입니다. –
내 대답을 편집했습니다. – shift66