演算子の概要
プログラムの中で演算子を使って、データに対していろいろな操作を行うことができます。
演算子には
があります。演算子には優先順序があります。
演算子 | 優先順位 | 分類 |
@,not,^,- | 1(最高) | 単項演算子 |
*,/,div,mod,and,shl,shr | 2 | 乗法演算子 |
+,-,or,xor | 3 | 加法演算子 |
=,<>,<,>,<=,>=,in | 4(最低) | 関係演算子 |
(注意)この他にもいくつかの演算子(例えばas)がありますが、ここでは基本的な演算子のみを載せてあります。
代入演算子
代入は=でなく:=です(=の前にセミコロンを付けます)。=は比較に使います。
例 X := -1;
算術演算子
算術演算子とは数値の演算を行うとき使う演算子です。単項演算子の-(負数を作る)と二項演算子-(引き算)は同じマイナス記号を使います。以下に二項演算子を示します。
記号 | 意味 | 例 |
+ | 足し算 | Y := X + 1; |
- | 引き算 | Y := X - 1; |
* | 掛け算 | Y := 3.14 * X; |
/ | 実数の割り算 | Y := X / 3.14; |
div | 整数の割り算 | K := N div 2; |
mod | 剰余 | N := M mod 2; |
整数と実数の割り算で演算子が違うことに注意してください。
ビット演算子
ビット演算子は整数型の変数のビットを操作するとき使います。
記号 | 意味 | 例 |
or | 論理和 | M := N or $8000; |
and | 論理積 | M := N and $FF; |
xor | 排他的論理和 | M := N xor $FFFF; |
shr | 右シフト | M := N shr 1; |
shl | 左シフト | M := N shl 1; |
not | 1の補数 | M := not N; |
関係演算子
関係演算子は比較を行うとき使われます。ふつう、if文とともに使われます。C言語では「等しい」は==ですが、Pascalでは=です。
例
if X > 0 then begin X := X - 1; Y := F(X); end;
論理演算子
倫理演算子はBoolean型の変数に対して使われます。
記号 | 意味 | 例 |
or | 論理和 | F := F1 or F2; |
and | 論理積 | F := F1 and F2; |
xor | 排他的論理和 | F := F xor True; |
not | 1の補数 | F := not F1; |
アドレス演算子
アドレス演算子@を使うと変数,手続き,関数,メソッドのアドレスを得ることができます。つまり、これらの名前にに@を付けると、それらへのポインタとなります。
例
var X: Integer; P: ^Integer; // 整数へのポインタ begin ........ P := @X; ......... end;
集合演算子
集合演算子inはある値がその集合のメンバーかを判別するとき使います。
例
if a in ASet then begin .... end;
また、<=,=>,=は集合の比較に使います。例えばAがBに含まれるかどうかを判別するときは、A<=Bとします。
「集合の使い方」も参照してください。
文字列演算子
文字列を結合するときは+を使います。
例
Str := Str1 + '&' + Str2;
比較演算子<,>,<=,>=,=,<>は文字コード順に従って文字列を比較します。
文字列操作はこの他、多くの文字列操作ルーチンを使って行います。「文字列の操作」を参照してください。