일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- axios
- 컴포넌트
- Component
- react localStorage
- 자바스크립트
- 비트 연산자
- 프로그래머스
- Redux
- CORS
- 브라우저
- Frontend
- react
- 프론트엔드
- state
- v9
- array
- 리액트
- es6
- localstorage
- TypeScript
- JS
- 알고리즘
- 원티드
- firebase
- til
- Reducer
- 타입스크립트
- JavaScript
- 파이어베이스
- 프리온보딩
Archives
- Today
- Total
도리쓰에러쓰
[JavaScript] 비트 연산자 본문
1️⃣ & (AND 논리 연산자)
: 비교하는 비트가 모두 1이면 1을 반환한다.
const and = 2 & 3;
console.log(and); // 2
// 2 : 0010
// 3 : 0011
// 0010 => 2
2️⃣ | (OR 논리 연산자)
: 비교하는 비트 중 하나라도 1이면 1을 반환한다.
const or = 2 | 3;
console.log(or); // 3
// 2 : 0010
// 3 : 0011
// 0011 => 3
3️⃣ ^ (배타 논리 연산자)
: 비교하는 비트가 같으면 0, 다르면 1을 반환한다.
const beta = 2 ^ 3;
console.log(beta); // 1
// 2 : 0010
// 3 : 0011
// 0001 => 1
4️⃣ ~ (부정 논리 연산자)
: 피연산자가 하나이며 비트를 반전시켜 음수를 나타낸다.
const not = ~ 18;
console.log(not); // -19
// 0000 0000 0000 0000 0000 0000 0001 0010 => 18
// 1111 1111 1111 1111 1111 1111 1110 1101 => -19
5️⃣ << (왼쪽 시프트 연산자)
: 지정한 수만큼 비트 전체를 왼쪽으로 이동하며, 지정한 수에 따라 2의 제곱만큼 피연산자가 곱해진다.
const leftShift = 5 << 2;
console.log(leftShift); // 20
// 5 : 0000 0101
// 🔽 이진수 5를 2비트 왼쪽으로 이동
// 10 : 0000 1010
// 20 : 0001 0100
// 5 * 2 * 2 = 20
6️⃣ >> (오른쪽 시프트 연산자)
: 지정한 수만큼 비트 전체를 오른쪽으로 이동하며, 오른쪽에 있는 비트는 소멸된다.
const rightShift = 5 >> 2;
console.log(rightShift); // 1
// 5 : 0000 0101
// 🔽 이진수 5를 2비트 오른쪽으로 이동
// 2 : 0000 0010
// 1 : 0000 0001
7️⃣ >>> (부호 없는 오른쪽 시프트 연산자)
: 지정한 수만큼 32비트 모두 오른쪽으로 이동하며 빈 비트는 전부 0으로 채운다.
양수인 경우엔 오른쪽 시프트 연산자(>>)와 동일하게 동작하지만, 음수인 경우엔 오른쪽 시프트 연산자(>>)와 다르게 동작한다.
💡 양수인 경우
console.log(5 >>> 2); // 1
// 5 : 0000 0000 0000 0000 0000 0000 0000 0101
// 🔽 이진수 5를 2비트 오른쪽으로 이동
// 2 : 0000 0000 0000 0000 0000 0000 0000 0010
// 1 : 0000 0000 0000 0000 0000 0000 0000 0001
💡 음수인 경우
console.log(-5 >>> 2); // 1073741822
// -5 : 1111 1111 1111 1111 1111 1111 1111 1010
// 🔽 이진수 -5를 2비트 오른쪽으로 이동
// 0111 1111 1111 1111 1111 1111 1111 1101
// 0011 1111 1111 1111 1111 1111 1111 1110 => 1073741822
Comments