Логічні і побітові операції
Логічні операції використовуються для об'єднання кількох логічних умов в одну.
Назва операції |
Оператор |
Приклад |
Опис |
Логічне І, and, логічне множення |
and |
(2+3=5) and (0>-1) |
Істинне, якщо обидва операнда істинні |
Логічне АБО, or, логічне додавання |
or |
(2+2=5) or (1=1) |
Істинне, якщо хоча б один з операндів істинний |
Логічне виключне АБО, eXclusive or |
xor |
(2+2=5) xor (1=1) |
Істинне, якщо рівно один з операндів істинний |
Заперечення, логічне НЕ, not |
not |
not (2+2=5) |
Істинне, якщо операнд неправдивий |
Логічні оператори, застосовані до цілих типів, можуть використовуватися, як побітові. Щоб отримати результат побітової операції, треба представити операнди у двійковій системі (так, як вони представлені в комп'ютері), після чого застосувати відповідну операцію до відповідних розрядів, причому 1 означає true, 0 - false. Так,
writeln(13 and 11);
виведе 9, бо
13 в двійковій системі буде |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
11 в двійковій системі буде |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
9 в двійковій системі буде |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
Крім того, є ще дві побітових операції зсуву:
Назва операції |
Оператор |
Приклад |
Опис |
Зсув праворуч |
shr |
14 shr 2 (=3) |
Зсуває двійкові розряди першого операнда праворуч на другий операнд розрядів; еквівалент цілої частини ділення на степінь 2 |
Зсув ліворуч |
shl |
7 shl 3 (=56) |
Зсуває двійкові розряди першого операнда ліворуч на другий операнд розрядів; еквівалент множенню на степінь 2 |
Детальніше: http://pas1.ru/bitarithmetic
Алгебраїчні функції
Зеленим позначені функції, які не підтримуються в Turbo Pascal
Назва функції |
Опис |
Замінник (для Turbo Pascal) |
Pi |
Повертає значення
числа |
|
Abs(X) |
Абсолютне значення (модуль) X |
|
Sign(X) |
Знак числа X: -1, якщо X від'ємний, 1, якщо додатний, 0, якщо X=0 |
|
Exp(X) |
Експонента X (eX) |
|
Ln(X) |
Натуральний логарифм X |
|
Log2(X) |
Логарифм X за основою 2 |
Ln(X)/Ln(2) |
Log10(X) |
Логарифм X за основою 10 |
Ln(X)/Ln(10) |
LogN(X,Y) |
Логарифм Y за основою X |
Ln(Y)/Ln(X) |
Power(X,Y) |
Степінь XY |
Exp(Y*Ln(X)) |
Sqrt(X) |
Корінь квадратний з X |
|
Sqr(X) |
Квадрат X |
|
Max(X,Y) |
Більше зі значень X та Y |
|
Min(X,Y) |
Менше зі значень X та Y |
|
Зауваження: корінь степеня Y з числа X можна представити як X1/Y, і, відповідно, як Power(X,1/Y) або в Turbo Pascal як Exp(Ln(X)/Y).
