아무래도 숫자 연산을 할 때 소수점을 버린 정수가 필요할 때가 더러 있었는데요.
Math.floor
나 parseInt
, 가끔 쓰이는 Math.trunc
는 좀 귀찮은 구석이 있었습니다. (글자 수도 잡아먹고…)
뭔가 저런 함수들을 쓰면 되긴 하는데, 간단한 연산자 하나로 끝낼 수 없을까 생각하다가,
모질라 문서에서 아이디어를 얻었습니다. 바로 비트연산자죠.
자바스크립트에서 비트 연산자는 부호가 있는 32비트 정수로 연산을 하니까,
소수점을 버리는 연산이 가능하지 않을까 생각했습니다.
x >> 0
, x << 0
, x >>> 0
, 을 하면 정수부는 유지가 된 채로 소수점을 버릴 수 있더군요.
다만 >>>
는 부호를 버리기 때문에 음수는 오버플로우되니 0과 양수 영역에서만 쓸 수 있겠더라고요.
테스트
이 글이 도움이 된 분들이 계셨으면 좋겠습니다 (꾸벅)