Pascal - Toán tử

Một toán tử là một ký hiệu yêu cầu trình biên dịch thực hiện các thao tác toán học hoặc logic cụ thể. Pascal cho phép các loại toán tử sau:

  • Toán tử số học
  • Toán tử quan hệ
  • Toán tử boolean
  • Toán tử bit
  • Đặt toán tử
  • Toán tử chuỗi

Chúng ta hãy thảo luận từng toán tử số học, quan hệ, Boolean và bit. Chúng ta sẽ thảo luận về các toán tử tập hợp và các hoạt động chuỗi ở phần sau.

Toán tử số học

Bảng sau đây cho thấy tất cả các toán tử số học được Pascal hỗ trợ. Giả sử biếnA giữ 10 và biến B giữ 20, sau đó -

Hiển thị các ví dụ

Nhà điều hành Sự miêu tả Thí dụ
+ Thêm hai toán hạng A + B sẽ cho 30
- Trừ toán hạng thứ hai với toán hạng đầu tiên A - B sẽ cho -10
* Nhân cả hai toán hạng A * B sẽ cho 200
/ Chia tử số cho mẫu số B / A sẽ cho 2
% Toán tử mô đun và phần còn lại của sau một phép chia số nguyên B% A sẽ cho 0

Toán tử quan hệ

Bảng sau đây cho thấy tất cả các toán tử quan hệ được hỗ trợ bởi Pascal. Giả sử biếnA giữ 10 và biến B giữ 20, sau đó -

Hiển thị các ví dụ

Nhà điều hành Sự miêu tả Thí dụ
= Kiểm tra xem giá trị của hai toán hạng có bằng nhau hay không, nếu có thì điều kiện trở thành true. (A = B) là không đúng.
<> Kiểm tra xem giá trị của hai toán hạng có bằng nhau hay không, nếu các giá trị không bằng nhau thì điều kiện trở thành true. (A <> B) là đúng.
> Kiểm tra xem giá trị của toán hạng bên trái có lớn hơn giá trị của toán hạng bên phải hay không, nếu có thì điều kiện trở thành true. (A> B) không đúng.
< Kiểm tra xem giá trị của toán hạng bên trái có nhỏ hơn giá trị của toán hạng bên phải hay không, nếu có, thì điều kiện trở thành true. (A <B) là đúng.
> = Kiểm tra xem giá trị của toán hạng bên trái có lớn hơn hoặc bằng giá trị của toán hạng bên phải hay không, nếu có thì điều kiện trở thành true. (A> = B) là không đúng.
<= Kiểm tra xem giá trị của toán hạng bên trái có nhỏ hơn hoặc bằng giá trị của toán hạng bên phải hay không, nếu có thì điều kiện trở thành true. (A <= B) là đúng.

Toán tử Boolean

Bảng sau đây cho thấy tất cả các toán tử Boolean được hỗ trợ bởi ngôn ngữ Pascal. Tất cả các toán tử này hoạt động trên toán hạng Boolean và tạo ra kết quả Boolean. Giả sử biếnA giữ đúng và biến B giữ sai, sau đó -

Hiển thị các ví dụ

Nhà điều hành Sự miêu tả Thí dụ
Được gọi là toán tử Boolean AND. Nếu cả hai toán hạng đều đúng, thì điều kiện trở thành đúng. (A và B) là sai.
và sau đó Nó tương tự như toán tử AND, tuy nhiên, nó đảm bảo thứ tự mà trình biên dịch đánh giá biểu thức logic. Các toán hạng trái sang phải và phải chỉ được đánh giá khi cần thiết. (A và sau đó là B) là sai.
hoặc là Được gọi là Boolean HOẶC Toán tử. Nếu bất kỳ toán hạng nào trong hai toán hạng là true, thì điều kiện trở thành true. (A hoặc B) là đúng.
hoặc cái gì đó khác Nó tương tự như Boolean OR, tuy nhiên, nó đảm bảo thứ tự mà trình biên dịch đánh giá biểu thức logic. Các toán hạng trái sang phải và phải chỉ được đánh giá khi cần thiết. (A hoặc khác B) là đúng.
không phải Được gọi là Toán tử Boolean NOT. Được sử dụng để đảo ngược trạng thái logic của toán hạng của nó. Nếu một điều kiện là đúng, thì toán tử logic NOT sẽ làm cho nó sai. không (A và B) là đúng.

Toán tử bit

Toán tử bitwise làm việc trên các bit và thực hiện hoạt động từng bit. Tất cả các toán tử này hoạt động trên các toán hạng số nguyên và tạo ra kết quả số nguyên. Bảng sự thật cho bitwise và (&), bitwise hoặc (|), và không phải là bitwise (~) như sau:

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 1

Giả sử nếu A = 60; và B = 13; bây giờ ở định dạng nhị phân, chúng sẽ như sau:

A = 0011 1100

B = 0000 1101

-----------------

A&B = 0000 1100

A ^ B = 0011 0001

~ A = 1100 0011

Các toán tử Bitwise được Pascal hỗ trợ được liệt kê trong bảng sau. Giả sử biến A giữ 60 và biến B giữ 13, thì:

Hiển thị các ví dụ

Nhà điều hành Sự miêu tả Thí dụ
& Toán tử Binary AND sao chép một bit vào kết quả nếu nó tồn tại trong cả hai toán hạng. (A & B) sẽ cho 12, là 0000 1100
| Toán tử OR nhị phân sao chép một bit nếu nó tồn tại trong một trong hai toán hạng. (A | B) sẽ cho 61, là 0011 1101
! Toán tử OR nhị phân sao chép một bit nếu nó tồn tại trong một trong hai toán hạng. Của nó giống như | nhà điều hành. (A! B) sẽ cho 61, là 0011 1101
~ Toán tử bổ sung số nhị phân là một ngôi và có tác dụng 'lật' các bit. (~ A) sẽ cho -61, là 1100 0011 ở dạng phần bù của 2 do một số nhị phân có dấu.
<< Toán tử Shift trái nhị phân. Giá trị của toán hạng bên trái được di chuyển sang trái bằng số bit được chỉ định bởi toán hạng bên phải. A << 2 sẽ cho 240, là 1111 0000
>> Toán tử Shift phải nhị phân. Giá trị toán hạng bên trái được di chuyển sang phải bằng số bit được chỉ định bởi toán hạng bên phải. A >> 2 sẽ cho 15, là 0000 1111

Xin lưu ý rằng các cách triển khai khác nhau của Pascal khác nhau trong các toán tử bitwise. Tuy nhiên, Free Pascal, trình biên dịch chúng tôi đã sử dụng ở đây, hỗ trợ các toán tử bitwise sau:

Người điều hành Hoạt động
không phải Bitwise KHÔNG
Bitwise VÀ
hoặc là Bitwise HOẶC
xor Bitwise độc ​​quyền HOẶC
shl Dịch chuyển bit sang trái
nhún vai Dịch chuyển bit sang phải
<< Dịch chuyển bit sang trái
>> Dịch chuyển bit sang phải

Các toán tử ưu tiên trong Pascal

Mức độ ưu tiên của toán tử xác định nhóm các thuật ngữ trong một biểu thức. Điều này ảnh hưởng đến cách một biểu thức được đánh giá. Một số toán tử nhất định có quyền ưu tiên cao hơn những toán tử khác; ví dụ, toán tử nhân có mức độ ưu tiên cao hơn toán tử cộng.

Ví dụ x = 7 + 3 * 2; ở đây, x được gán 13, không phải 20 vì toán tử * có mức độ ưu tiên cao hơn +, vì vậy, đầu tiên nó được nhân với 3 * 2 và sau đó cộng thành 7.

Ở đây, các toán tử có mức độ ưu tiên cao nhất xuất hiện ở đầu bảng, những toán tử có mức độ ưu tiên thấp nhất xuất hiện ở cuối bảng. Trong một biểu thức, các toán tử có mức độ ưu tiên cao hơn sẽ được đánh giá đầu tiên.

Hiển thị các ví dụ

Nhà điều hành Quyền ưu tiên
~, không, Cao nhất
*, /, div, mod và, &
|,!, +, -, hoặc,
=, <>, <, <=,>,> =, trong
hoặc khác, và sau đó Thấp nhất