aboutsummaryrefslogtreecommitdiff
path: root/files/uk/web/javascript/reference/operators/bitwise_not/index.html
blob: 5c8374194889de64f7e848f6a8a335ffb1a78378 (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
---
title: Побітове НЕ (~)
slug: Web/JavaScript/Reference/Operators/Bitwise_NOT
tags:
  - JavaScript
  - Бітовий оператор
  - Довідка
  - Оператор
translation_of: Web/JavaScript/Reference/Operators/Bitwise_NOT
---
<div>{{jsSidebar("Operators")}}</div>

<p>Оператор побітового НЕ (<code>~</code>) інвертує біти свого операнда.</p>

<div>{{EmbedInteractiveExample("pages/js/expressions-bitwise-not.html")}}</div>

<div></div>



<h2 id="Синтаксис">Синтаксис</h2>

<pre class="syntaxbox notranslate"><code><var>~a</var></code>
</pre>

<h2 id="Опис">Опис</h2>

<p>Операнди перетворюються на 32-бітні цілі числа та виражаються послідовністю бітів (нулів та одиниць). Числа, що мають більше 32 бітів, втрачають свої старші біти. Наприклад, наступне ціле число, що має більше 32 бітів, буде перетворене на 32-бітне ціле число:</p>

<pre class="brush: js notranslate">До:     11100110111110100000000000000110000000000001
Після:              10100000000000000110000000000001</pre>

<p>Оператор застосовується до кожного біта.</p>

<p>Таблиця істинності для операції <code>НЕ</code> (NOT) наступна</p>



<table class="standard-table">
 <thead>
  <tr>
   <th class="header" scope="col">a</th>
   <th class="header" scope="col">NOT a</th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td>0</td>
   <td>1</td>
  </tr>
  <tr>
   <td>1</td>
   <td>0</td>
  </tr>
 </tbody>
</table>

<pre class="brush: js notranslate"> 9 (основа 10) = 00000000000000000000000000001001 (основа 2)
               --------------------------------
~9 (основа 10) = 11111111111111111111111111110110 (основа 2) = -10 (основа 10)
</pre>

<p>Побітове НЕ над будь-яким числом <code>x</code> дає <code>-(x + 1)</code>. Наприклад, <code>~-5</code> повертає <code>4</code>.</p>

<p>Зауважте, що через використання 32-бітного представлення чисел і <code>~-1</code>, і <code>~4294967295</code> (2<sup>32</sup>-1) повернуть <code>0</code>.</p>

<h2 id="Приклади">Приклади</h2>

<h3 id="Використання_побітового_НЕ">Використання побітового НЕ</h3>

<pre class="brush: js notranslate">~0;  // -1
~-1; // 0
~1;  // -2
</pre>

<h2 id="Специфікації">Специфікації</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Специфікація</th>
  </tr>
  <tr>
   <td>{{SpecName('ESDraft', '#sec-unary-operators', 'Unary NOT expression')}}</td>
  </tr>
 </tbody>
</table>

<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>



<p>{{Compat("javascript.operators.bitwise_not")}}</p>

<h2 id="Див._також">Див. також</h2>

<ul>
 <li><a href="/uk/docs/Web/JavaScript/Guide/Вирази_та_оператори#Бітові_оператори">Бітові оператори у посібнику JS</a></li>
</ul>