[TIL]Tilt 연산자

이명진·2023년 1월 3일
0

TIL

목록 보기
6/16

알고리즘 문제를 풀면서 처음 봐서 찾아보고 정리한다.

Tilt 연산자

틸트(Tilt) 연산자를 사용하게 되면 내부적으로 32비트 정수로 변환 후 NOT 연산자를 실행한다.
최종적으로 2의 보수 -(n+1)와 같다.

1
~1 // -2
왜 이걸 사용하는지는 아직 모르겠다.

대부분 보통 indexOf함수에서 많이 사용되는것 같다.


const str = "Hello World";

if (~str.indexOf("ll")) {
  console.log(‘참’);
} else {
  console.log(‘거짓');
}

indexOf 에서 값이 없으면 -1을 리턴한다. 하지만 틸트를 사용해서
0값으로 변경해줘서 참 거짓을 나타내는데 일반적으로 0값은 false값이다.
그래서 이런방법으로 조건식으로 사용할수 있다.

Tilt(~)를 두개 사용하여 비트 잘라내기

Tilt(~) 사용시 숫자의 소수점을 버리게 되며, ~(Tilt) 연산을 두번 시킴으로써 결과적으로는 원래 상태로 되돌리게 된다.
Math.floor()와 동일하게 적용되는데 음수에서는 결과값이 달라질수 있다.

~~33.3;  // 33
Math.floor(33.33);  //33

~~-11.2; // -11
Math.floor(-11.2); // -12

결과적으로 틸트를 두번써서 Math.floor()를 축약 시킬수 있다.

Math.floor 쓰기가 좀 번거로울때 사용할것 같다.

profile
프론트엔드 개발자 초보에서 고수까지!

0개의 댓글