비트 연산으로 몇 가지 테스트 수행 / JavaScript로 이동
0x80000000 >> 1 // returns -1073741824 (-0x40000000)
나는 그것이 0x40000000을 반환하기를 기대할 것입니다.
0x40000000 >> 1 // returns 0x20000000
0x20000000 >> 1 // returns 0x10000000
비트 연산으로 몇 가지 테스트 수행 / JavaScript로 이동
0x80000000 >> 1 // returns -1073741824 (-0x40000000)
나는 그것이 0x40000000을 반환하기를 기대할 것입니다.
0x40000000 >> 1 // returns 0x20000000
0x20000000 >> 1 // returns 0x10000000
자바스크립트에서 > >
는 서명 된 오른쪽 시프트 연산자 입니다. 언어 사양 의 §11.7.2에서 다음과 같이 말합니다.
오른쪽 피연산자에 지정된 양만큼 왼쪽 피연산자에서 부호 채우기 비트 오른쪽 시프트 연산을 수행합니다.
이동이 완료되기 전에 왼쪽 피연산자는 부호있는 32 비트 정수로 변환됩니다 (사양에 제공된 알고리즘의 5 단계). 귀하의 경우이 변환은 주어진 양수를 음수 값으로 바꿉니다. 그 후 실제 이동이 수행되어 값의 음수 부호를 유지합니다.