Pascal-operators
提供:Dev Guides
パスカル-演算子
演算子は、特定の数学的または論理的な操作を実行するようコンパイラーに指示する記号です。 パスカルは、演算子の次のタイプを許可します-
- 算術演算子
- 関係演算子
- ブール演算子
- ビット演算子
- 集合演算子
- 文字列演算子
算術演算子、関係演算子、ブール演算子、ビット演算子を1つずつ説明します。 集合演算子と文字列操作については後で説明します。
算術演算子
次の表は、Pascalでサポートされているすべての算術演算子を示しています。 変数 A が10を保持し、変数 B が20を保持すると仮定します-
リンク:/pascal/pascal_arithmetic_operators [例を表示]
Operator | Description | Example |
---|---|---|
+ | Adds two operands | A + B will give 30 |
- | Subtracts second operand from the first | A - B will give -10 |
* | Multiplies both operands | A* B will give 200 |
/ | Divides numerator by denominator | B/A will give 2 |
% | Modulus Operator and remainder of after an integer division | B % A will give 0 |
関係演算子
次の表は、Pascalでサポートされているすべての関係演算子を示しています。 変数 A が10を保持し、変数 B が20を保持すると仮定します-
リンク:/pascal/pascal_relational_operators [例を表示]
Operator | Description | Example |
---|---|---|
= | Checks if the values of two operands are equal or not, if yes, then condition becomes true. | (A = B) is not true. |
<> | Checks if the values of two operands are equal or not, if values are not equal, then condition becomes true. | (A <> B) is true. |
> | Checks if the value of left operand is greater than the value of right operand, if yes, then condition becomes true. | (A > B) is not true. |
< | Checks if the value of left operand is less than the value of right operand, if yes, then condition becomes true. | (A < B) is true. |
>= | Checks if the value of left operand is greater than or equal to the value of right operand, if yes, then condition becomes true. | (A >= B) is not true. |
⇐ | Checks if the value of left operand is less than or equal to the value of right operand, if yes, then condition becomes true. | (A ⇐ B) is true. |
ブール演算子
次の表は、Pascal言語でサポートされているすべてのブール演算子を示しています。 これらの演算子はすべてブール値オペランドで機能し、ブール値の結果を生成します。 変数 A が真を保持し、変数 B が偽を保持すると仮定します-
リンク:/pascal/pascal_boolean_operators [例を表示]
Operator | Description | Example |
---|---|---|
and | Called Boolean AND operator. If both the operands are true, then condition becomes true. | (A and B) is false. |
and then | It is similar to the AND operator, however, it guarantees the order in which the compiler evaluates the logical expression. Left to right and the right operands are evaluated only when necessary. | (A and then B) is false. |
or | Called Boolean OR Operator. If any of the two operands is true, then condition becomes true. | (A or B) is true. |
or else | It is similar to Boolean OR, however, it guarantees the order in which the compiler evaluates the logical expression. Left to right and the right operands are evaluated only when necessary. | (A or else B) is true. |
not | Called Boolean NOT Operator. Used to reverse the logical state of its operand. If a condition is true, then Logical NOT operator will make it false. | not (A and B) is true. |
ビット演算子
ビットごとの演算子はビットに対して機能し、ビットごとの操作を実行します。 これらの演算子はすべて整数オペランドで機能し、整数の結果を生成します。 ビットごとの(&)、ビットごとの(())、ビットごとではない(〜)の真理値表は次のとおりです-
p | q | p & q | p | q | ~p |
---|---|---|---|---|---|
~q | 0 | 0 | 0 | 0 | 1 |
1 | 0 | 1 | 0 | 1 | 1 |
0 | 1 | 1 | 1 | 1 | 0 |
0 | 1 | 0 | 0 | 1 | 0 |
A = 60であると仮定します。およびB = 13;今バイナリ形式では、次のようになります-
A = 0011 1100
B = 0000 1101
A&B = 0000 1100
A ^ B = 0011 0001
〜A = 1100 0011
Pascalでサポートされているビット演算子は、次の表にリストされています。 変数Aが60を保持し、変数Bが13を保持すると仮定すると:
link:/pascal/pascal_bit_operators [例を表示]
[cols=",,",options="header",]
|===
|Operator |Description |Example |& |Binary AND Operator copies a bit to the result if it exists in both operands. |(A & B) will give 12, which is 0000 1100 || |Binary OR Operator copies a bit if it exists in either operand. |(A | B) will give 61, which is 0011 1101 |! |Binary OR Operator copies a bit if it exists in either operand. Its same as | operator. |(A ! B) will give 61, which is 0011 1101 |~ |Binary Ones Complement Operator is unary and has the effect of 'flipping' bits. |(~A ) will give -61, which is 1100 0011 in 2's complement form due to a signed binary number. |<< |Binary Left Shift Operator. The left operands value is moved left by the number of bits specified by the right operand. |A << 2 will give 240, which is 1111 0000 |>> |Binary Right Shift Operator. The left operands value is moved right by the number of bits specified by the right operand. |A >> 2 will give 15, which is 0000 1111
|===
Pascalの異なる実装はビットごとの演算子が異なることに注意してください。 ただし、ここで使用したコンパイラであるFree Pascalは、次のビット演算子をサポートしています-
[cols=",",options="header",]
|===
|Operators |Operations |not |Bitwise NOT |and |Bitwise AND |or |Bitwise OR |xor |Bitwise exclusive OR |shl |Bitwise shift left |shr |Bitwise shift right |<< |Bitwise shift left |>> |Bitwise shift right
|===
=== パスカルでの演算子の優先順位
演算子の優先順位は、式内の用語のグループ化を決定します。 これは、式の評価方法に影響します。 特定の演算子は、他の演算子よりも優先順位が高くなっています。たとえば、乗算演算子は加算演算子よりも優先順位が高くなります。
たとえば、x = 7 + 3 * 2;ここでは、演算子*の優先順位が+よりも高いため、xには20ではなく13が割り当てられます。したがって、最初に3 * 2で乗算され、7に加算されます。
ここでは、優先順位が最も高い演算子が表の上部に表示され、優先順位が最も低い演算子が下部に表示されます。 式内では、優先順位の高い演算子が最初に評価されます。
リンク:/pascal/pascal_operators_precedence [例を表示]
[cols=",",options="header",]
|===
|Operator |Precedence |~, not, |Highest |*,/, div, mod, and, & | ||, !, +, -, or, | |=, <>, <, <=, >, >=, in | |or else, and then |Lowest
|===