aboutsummaryrefslogtreecommitdiff
path: root/files/ko/web/javascript/reference/operators/bitwise_and/index.md
blob: d928ce743861f5974732d86b13a258d9ca64b931 (plain)
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
---
title: AND 비트연산(&)
slug: Web/JavaScript/Reference/Operators/Bitwise_AND
tags:
  - Bitwise operator
  - JavaScript
  - Language feature
  - Operator
  - Reference
browser-compat: javascript.operators.bitwise_and
---

{{jsSidebar("Operators")}}

AND 비트 연산자(`&`)는 두 개의 피연산자의 각 자리마다 대응하는 비트가 모두 `1`일 경우 `1`을 반환합니다.

{{EmbedInteractiveExample("pages/js/expressions-bitwise-and.html")}}

## 구문

```js
a & b;
```

## 설명

피연산자는 32비트 정수로 변환되며 일련의 비트(0과 1)로 표현됩니다. 32비트 이상인 숫자는 최상위 비트가 삭제됩니다. 예를 들어 32비트 이상인 다음 정수는 32비트 정수로 변환됩니다.

```js
Before: 11100110111110100000000000000110000000000001;
After: 10100000000000000110000000000001;
```

첫 번째 피연산자의 각 비트는 두 번째 피연산자의 해당 비트(_첫 번째 비트_ 와 _첫 번째 비트_, _두 번째 비트__두 번째 비트_ 등등)와 쌍을 이룹니다.

연산자가 각 비트의 쌍에 적용되며, 결과는 완성된 비트 연산된 값입니다.

AND 연산에 대한 진리표는 다음과 같습니다:

| a   | b   | a AND b |
| --- | --- | ------- |
| 0   | 0   | 0       |
| 0   | 1   | 0       |
| 1   | 0   | 0       |
| 1   | 1   | 1       |

```js
.    9 (base 10) = 00000000000000000000000000001001 (base 2)
    14 (base 10) = 00000000000000000000000000001110 (base 2)
                   --------------------------------
14 & 9 (base 10) = 00000000000000000000000000001000 (base 2) = 8 (base 10)
```

어떤 수 `x``0`을 AND 비트 연산한 결과는 `0`가 됩니다.

## 예제

### AND 비트 연산 사용하기

```js
// 5: 00000000000000000000000000000101
// 2: 00000000000000000000000000000010
5 & 2; // 0
```

## 명세

{{Specifications}}

## 브라우저 호환성

{{Compat}}

## 같이 보기

- [JS의 비트 연산 가이드](/ko/docs/Web/JavaScript/Guide/Expressions_and_Operators#bitwise)
- [비트 AND 할당연산자](/ko/docs/Web/JavaScript/Reference/Operators/Bitwise_AND_assignment)