Difference between revisions of "And/ru"

From Free Pascal wiki
Jump to navigationJump to search
(Created page with "{{And}} == Логическая операция == Логическая операция '''And''' выдает значение true тогда и только...")
 
m (Fixed syntax highlighting; deleted category already in page template)
 
Line 30: Line 30:
 
=== Является ли операнд степенью двойки ===
 
=== Является ли операнд степенью двойки ===
  
<syntaxhighlight>
+
<syntaxhighlight lang="pascal">
 
function IsPowerOfTwo( const aValue : longint ): boolean;
 
function IsPowerOfTwo( const aValue : longint ): boolean;
 
var
 
var
Line 50: Line 50:
  
 
== См. также ==
 
== См. также ==
 +
 
* [[Not/ru|Not]]
 
* [[Not/ru|Not]]
 
* [[Or/ru|Or]]
 
* [[Or/ru|Or]]
Line 60: Line 61:
 
* [[Shl# Clear a bit|Clear a bit]]
 
* [[Shl# Clear a bit|Clear a bit]]
 
* [[Bit manipulation/ru|Bit manipulation]]
 
* [[Bit manipulation/ru|Bit manipulation]]
 
[[Category:Pascal/ru]]
 

Latest revision as of 07:45, 26 January 2020

Deutsch (de) English (en) español (es) suomi (fi) français (fr) русский (ru)

Логическая операция

Логическая операция And выдает значение true тогда и только тогда, когда оба логических операнда равны true.

Таблица истинности

A B A and B
  false     false     false
  false   true   false
  true   false   false
  true   true   true

Побитовая операция

Для логической операции And (также известна, как Побитовое И) требуются операнды порядкового типа и в результирующей переменной бит устанавливается в 1 тогда и только тогда, когда оба соответствующих бита равны 1.

Является ли операнд степенью двойки

function IsPowerOfTwo( const aValue : longint ): boolean;
var
  x : longint;
  b : boolean;
begin
  b := false;
  if aValue <> 0 then
    begin
      x := aValue - 1;
      x := x and aValue;
      if x = 0 then b := true;
    end;
  result := b;
end;

Если вы вызовете IsPowerOfTwo(4), то получите результат true. Если вызовете IsPowerOfTwo(5), то результатом будет false.

См. также