Sign in Join
Wiki copytemporary

And/ru: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: And/ru

OldNewLine
1+## Логическая операция
2+
3+Логическая операция **And** выдает значение [[True/ru|true]] тогда и только тогда, когда оба логических операнда равны true.
4+
5+### Таблица истинности
6+
7+| A | B | A and B |
8+|-----------|-----------|---------|
9+|   false   |   false   |   false |
10+|   false |   true |   false |
11+|   true |   false |   false |
12+|   true |   true |   true |
13+
14+## Побитовая операция
15+
16+Для логической операции **And** (также известна, как Побитовое И) требуются операнды порядкового типа и в результирующей переменной бит устанавливается в 1 тогда и только тогда, когда оба соответствующих бита равны 1.
17+
18+### Является ли операнд степенью двойки
19+
20+``` pascal
21+function IsPowerOfTwo( const aValue : longint ): boolean;
22+var
23+ x : longint;
24+ b : boolean;
25+begin
26+ b := false;
27+ if aValue <> 0 then
28+ begin
29+ x := aValue - 1;
30+ x := x and aValue;
31+ if x = 0 then b := true;
32+ end;
33+ result := b;
34+end;
35+```
36+
37+Если вы вызовете IsPowerOfTwo(4), то получите результат **true**. Если вызовете IsPowerOfTwo(5), то результатом будет **false**.
38+
39+## См. также
40+
41+- [[Not/ru|Not]]
42+- [[Or/ru|Or]]
43+- [[Shl/ru|Shl]]
44+
45+- [[Const/ru|Const]]
46+- [[Function/ru|Function]]
47+- [[Integer/ru|Integer]]
48+
49+- [[Shl|Clear a bit]]
50+- [[Bit manipulation/ru|Bit manipulation]]
51+
52+---
53+*From the Free Pascal wiki, page "And/ru", as it stood on 2020-01-26 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history