A Developing Developer
[JavaScript] 제곱 수 여부 확인 & 비트 연산 본문
'num' 과 'num - 1 ' 을 '&' 비트 연산자를 사용하여 비교한다.
비트연산 결과가 0 이면 'num' 은 2의 제곱수 이므로 'true' 를 반환, 그렇지 않으면 'false' 를 반환
※ 비트 연산
JavaScript에서 비트 연산자는 숫자 데이터를 비트 단위로 조작하는 데 사용된다.
이러한 연산자는 32비트의 정수형 숫자를 다루며,
주로 비트 단위의 조작,
비트 필드 조작,
비트 플래그 확인 등에 활용된다.
[JavaScript에서 사용되는 주요 비트 연산자]
1.비트 AND(&) :
두 비트의 각 자리를 AND 연산하여 해당 자리의 비트가 모두 1일 경우 1을 반환한다.
예를 들어, 5 & 3은 이진수로 101 & 011이 되어 001(10진수 1)이 된다.
2.비트 OR(|) :
두 비트의 각 자리를 OR 연산하여 해당 자리의 비트 중 하나 이상이 1일 경우 1을 반환한다.
예를 들어, 5 | 3은 이진수로 101 | 011이 되어 111(10진수 7)이 된다.
3. 비트 XOR(^) :
두 비트의 각 자리를 XOR 연산하여 해당 자리의 비트가 서로 다를 경우 1을 반환한다.
예를 들어, 5 ^ 3은 이진수로 101 ^ 011이 되어 110(10진수 6)이 됩니다.
4. 비트 NOT(~) :
비트를 반전시켜 모든 0은 1로, 모든 1은 0으로 변환한다.
예를 들어, ~5는 이진수로 ~00000000000000000000000000000101이 되어 11111111111111111111111111111010(10진수 -6)이 된다.
이 연산자는 단항 연산자로서 숫자를 피연산자로 사용한다.
5. 왼쪽 시프트(<<) :
숫자의 비트를 왼쪽으로 주어진 수만큼 이동시킨다.
왼쪽에 새로운 0 비트가 추가된다.
예를 들어, 5 << 1은 이진수로 101 << 1이 되어 1010(10진수 10)이 된다.?
6. 오른쪽 시프트(>>) :
숫자의 비트를 오른쪽으로 주어진 수만큼 이동시킨다.
오른쪽에 새로운 비트는 부호비트로 채워진다.
양수의 경우 0, 음수의 경우 1로 채워진다.
예를 들어, 5 >> 1은 이진수로 101 >> 1이 되어 10(10진수 2)이 된다.?
7. 부호 없는 오른쪽 시프트(>>>) :
숫자의 비트를 오른쪽으로 주어진 수만큼 이동시킨다.
오른쪽에 새로운 비트는 항상 0으로 채워진다.
예를 들어, -5 >>> 1은 이진수로 -101 >>> 1이 되어 2147483645(10진수)가 된다.?
비트 연산자는 주로 저수준의 비트 조작이 필요한 경우,
성능 최적화,
비트 필드 조작,
암호화 등의 작업에서 사용된다.
그러나 코드의 가독성을 해칠 수 있으므로 사용할 때 주의해야한다.
'알고리즘' 카테고리의 다른 글
[JavaScript] 정규식 (0) | 2023.06.02 |
---|---|
[JavaScript] match() (0) | 2023.06.02 |
[JavaScript] 필터링 함수 filter((el) => el) (0) | 2023.05.31 |
[JavaScript] 이진수의 합 (0) | 2023.05.25 |
[JavaScript] 분할 할당 (0) | 2023.05.22 |