blob: 0ac51e7d419533953ed7fa708267c018e839e3a1 (
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
---
title: Побітове І (&)
slug: Web/JavaScript/Reference/Operators/Bitwise_AND
tags:
- JavaScript
- Бітовий оператор
- Довідка
- Оператор
translation_of: Web/JavaScript/Reference/Operators/Bitwise_AND
---
<div>{{jsSidebar("Operators")}}</div>
<p>Оператор побітового І (AND) <code>&</code> вертає <code>1</code> для кожної бітової позиції, де відповідні біти обох операндів дорівнюють <code>1</code>.</p>
<div>{{EmbedInteractiveExample("pages/js/expressions-bitwise-and.html")}}</div>
<div></div>
<h2 id="Синтаксис">Синтаксис</h2>
<pre class="syntaxbox notranslate"><code><var>a</var> & <var>b</var></code>
</pre>
<h2 id="Опис">Опис</h2>
<p>Операнди перетворюються на 32-бітні цілі числа та виражаються послідовністю бітів (нулів та одиниць). Числа, що мають більше 32 бітів, втрачають свої старші біти. Наприклад, наступне ціле число, що має більше 32 бітів, буде перетворене на 32-бітне ціле число:</p>
<pre class="brush: js notranslate">До: 11100110111110100000000000000110000000000001
Після: 10100000000000000110000000000001</pre>
<p>Кожен біт першого операнда ставиться у пару до відповідного біту другого операнда: <em>перший біт до першого біту</em>, <em>другий біт до другого</em>, і так далі.</p>
<p>Оператор застосовується до кожної пари бітів, а результат будується побітово.</p>
<p>Таблиця істинності для операції І наступна:</p>
<table class="standard-table">
<thead>
<tr>
<th class="header" scope="col">a</th>
<th class="header" scope="col">b</th>
<th class="header" scope="col">a AND b</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td>1</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
</tbody>
</table>
<pre class="brush: js notranslate">. 9 (основа 10) = 00000000000000000000000000001001 (основа 2)
14 (основа 10) = 00000000000000000000000000001110 (основа 2)
--------------------------------
14 & 9 (основа 10) = 00000000000000000000000000001000 (основа 2) = 8 (основа 10)
</pre>
<p>Побітове І над будь-яким числом <code><var>x</var></code> та <code>0</code> дає <code>0</code>.</p>
<h2 id="Приклади">Приклади</h2>
<h3 id="Використання_побітового_І">Використання побітового І</h3>
<pre class="brush: js notranslate">// 5: 00000000000000000000000000000101
// 2: 00000000000000000000000000000010
5 & 2; // 0</pre>
<h2 id="Специфікації">Специфікації</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Специфікація</th>
</tr>
<tr>
<td>{{SpecName('ESDraft', '#prod-BitwiseANDExpression', 'Bitwise AND expression')}}</td>
</tr>
</tbody>
</table>
<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
<p>{{Compat("javascript.operators.bitwise_and")}}</p>
<h2 id="Див._також">Див. також</h2>
<ul>
<li><a href="/uk/docs/Web/JavaScript/Guide/Вирази_та_оператори#Бітові_оператори">Бітові оператори у посібнику JS</a></li>
<li><a href="/uk/docs/Web/JavaScript/Reference/Operators/Bitwise_AND_assignment">Оператор присвоєння з побітовим І</a></li>
</ul>
|