Phép toán và các loại toán tử căn bản trong C | Lập Trình Từ Đầu

Trong toán học, một phép toán là một phép thực hiện tính toán từ một số lượng nào đó để tạo ra một kết quả cần tính toán. Chúng ta dễ dàng nhận thấy có một số phép toán mà ta hay sử dụng trong đời sống: cộng, trừ, nhân, chia. Trong lập trình C cũng có những phép toán như vậy, ngoài ra ngôn ngữ C còn mở rộng thêm nhiều phép toán khác để thực hiện nhiều chức năng khác, chúng được gọi tắt là các toán tử. Ngôn ngữ C có nhiều toán tử cài sẵn và tôi sẽ cung cấp các loại toán tử căn bản sau:

  • Toán tử về số học
  • Toán tử quan hệ
  • Toán tử logic
  • Toán tử gán

Trong phạm vi căn bản chúng ta chỉ cần nắm được 4 toán tử trên là đã áp dụng được rất nhiều trong quá trình lập trình với C rồi, ngoài ra các bạn có thể tự tham khảo thêm đầy đủ các toán tử của C tại đây: Operators in C and C++

Toán tử về số học trong lập trình hay cũng chính là các phép toán mà ta vẫn thường sử dụng trong đời sống như: Cộng, trừ, nhân, chia……

Ký hiệu Mô tả Ví dụ + Cộng các phần tử 1 + 6 = 7 – Trừ các phần tử 2 – 1 = 1 * Nhân các phẩn tử 5 * 7 = 35 / Chia các phần tử 10 / 2 = 5 % Chia lấy phần dư 10 / 8 = 2 (kết quả chính là phần dư) — Giảm một giá trị số nguyên xuống 1 đơn vị 5- = 5 – 1 = 4 ++ Tăng một giá trị số nguyên lên 1 đơn vị 9++ = 9 + 1 = 10 #include<stdio.h> int main(){ // Khai bao 2 gia tri a, b co gia tri la 16, 8 va c, d gia tri 10, 8 int a = 16; int b = 8; int c = 10; int d = 8; // Thuc hien cac phep toan + – * / giua a va b int cong = a + b; int tru = a – b; int nhan = a * b; int chia = a / b; //Thuc hien cac phep toan % int chiaLayDu = c % d; a++; //Tang a len 1 don vi b-; // Giam b xuong 1 don vi // Hien thi ket qua printf(“Cong = %d n”, cong); printf(“Tru = %d n”, tru); printf(“Nhan = %d n”, nhan); printf(“Chia = %d n”, chia); printf(“Chia lay phan du = %d n”, chiaLayDu); printf(“a++ = %d n”, a); printf(“b- = %d n”, b); return 0; } Cong = 24

Tru = 8

Nhan = 128

Chia = 2

Chia lay phan du = 2

a++ = 17

b- = 7

Toán tử quan hệ hay có thể hiểu nôm na là phép so sánh giứa các đại lượng, các giá trị với nhau cho ra kết quả đúng hoặc sai.

Ký hiệu Mô tả Ví dụ == So sánh giá trị có bằng nhau không 1 == 1 (đúng), 2 == 1 (sai) != So sánh giá trị có không bằng nhau hay không 1 != 2 (đúng), 1 != 1 (sai) > So sánh giá trị lớn hơn hay không 5 > 4 (đúng), 5 > 6 (sai) < So sánh giá trị nhỏ hơn hay không 5 < 6 (đúng), 5 < 4 (sai) >= So sánh giá trị có lớn hơn hoặc bằng hay không 5 >= 4 (đúng), 5 >= 5 (đúng), 5 >= 6 (sai) <= So sánh giá trị có nhỏ hơn hoặc bằng hay không 5 <= 4 (sai), 5 <= 5 (đúng), 5 <= 6 (đúng) #include<stdio.h> int main(){ // Khai bao 2 gia tri a, b co gia tri la 16, 8 int a = 16; int b = 8; // Hien thi ket qua so sanh ==,!=, >, <, >=, <= giua a va b // Ket qua 1 la dung, 0 la sai printf(“Bang nhau: %d n”, a == b); printf(“Khong bang: %d n”, a != b); printf(“Lon hon: %d n”, a > b); printf(“Nho hon: %d n”, a < b); printf(“Lon hon hoac bang: %d n”, a >= b); printf(“Nho hon hoac bang: %d n”, a <= b); return 0; } Bang nhau: 0

Khong bang: 1

Lon hon: 1

Nho hon: 0

Lon hon hoac bang: 1

Nho hon hoac bang: 0

Toán tử logic được dùng để miêu tả các mệnh đề, kết quả chỉ có thể là đúng hoặc sai.

Ký hiệu Mô tả && Là toán từ AND (và). Toán tử này chỉ đúng khi cả 2 mệnh để đang xét đúng || Là toán tử OR (hoặc). Toán tử này chỉ sai khi cả 2 mệnh đề đang xét sai ! Là toán tử phủ định của một mệnh đề, biến đúng thành sai, biến sai thành đúng

Xét ví dụ dưới đây ta có:

A B C D A && B A && C A || B B || D !A !B !C !D 1 0 1 0 0 1 1 0 0 1 0 1 #include<stdio.h> int main(){ // Khai bao 4 gia tri a, b, c, d co gia tri la 1,0,1,0 // Coi gia tri 1 la dung, gia tri 0 la sai int a = 1; int b = 0; int c = 1; int d = 0; printf(“Gia tri cua a, b, c, d la: %d %d %d %d n”, a,b,c,d); // Hien thi ket qua &&, ||, ! // Ket qua 1 la dung, 0 la sai printf(“Menh de && giua a va b la: %d n”, a && b); printf(“Menh de && giua a va c la: %d n”, a && c); printf(“Menh de || giua a va b la: %d n”, a || b); printf(“Menh de || giua b va d la: %d n”, b || d); printf(“Phu dinh cua a, b, c, d la: %d %d %d %d”, !a,!b,!c,!d); return 0; } Gia tri cua a, b, c, d la: 1 0 1 0

Menh de && giua a va b la: 0

Menh de && giua a va c la: 1

Menh de || giua a va b la: 1

Menh de || giua b va d la: 0

Phu dinh cua a, b, c, d la: 0 1 0 1

Toán tử gán hay còn được hiểu là phép gán một giá trị cho một biến, hay gán một phép tính giá trị cho một biến……v.v

Ký hiệu Mô tả Ví dụ = Gán cho giá trị bên trái bằng giá trị bên phải A = B += Cộng giá trị bên trái bằng một giá trị bên phải A += B tương đương A = A + B -= Trừ giá trị bên trái bằng một giá trị bên phải A -= B tương đương A = A – B *= Nhân giá trị bên trái bằng một giá trị bên phải A *= B tương đương A = A * B /= Chia giá trị bên trái bằng một giá trị bên phải A /= B tương đương A = A / B #include<stdio.h> int main(){ // Khai bao 2 gia tri a, b co gia tri la 12,6 int a = 12; int b = 6; // Gan a = b a = b; printf(“Gan a = b: %d n”, a); // Khai bao 2 gia tri c, d co gia tri la 5,6 int c = 5; int d = 6; // Gan c += d hay con duoc hieu la c = c + d c += d; printf(“c += d: %d n”, c); // Khai bao 2 gia tri e, f co gia tri la 7,6 int e = 7; int f = 6; // Gan e -= f hay con duoc hieu la e = e – f e -= f; printf(“e -= f: %d n”, e); // Khai bao 2 gia tri g, h co gia tri la 8,6 int g = 8; int h = 6; // Gan g *= h hay con duoc hieu la g = g * h g *= h; printf(“g *= h: %d n”, g); // Khai bao 2 gia tri i, k co gia tri la 36,6 int i = 36; int k = 6; // Gan i /= k hay con duoc hieu la i = i / k i /= k; printf(“i /= k: %d n”, i); return 0; } Gan a = b: 6

c += d: 11

e -= f: 1

g *= h: 48

i /= k: 6