Trong C nhiều loại phép toán. Bài viết hôm nay chúng ta cùng tìm hiểu về các phép toán trong C.
- Toán tử số học:
Các toán tử số học thông thường là:
Cộng : +
Trừ : –
Nhân : *
Chia : /
Phép chia lấy phần dư của số nguyên : %
*Chú ý:
– Phép toán % không dùng cho kiểu dữ liệu float hay double.
– Phép chia( / ) thực hiện theo kiểu của các toán hạng dù là phép chia số nguyên hay số thực.
– Có sự khác nhau giữa i/j và (float)i/j . Theo cách viết (float)i/j thì kết quả sẽ là một số thực.
Ví dụ:
#include <stdio.h> #include <conio.h> int main() { int i = 10,j = 4, s, p, r; float x; s = i + j; printf("n Tong = %d",s); printf("n Hieu = %d",i-j); p = i*j ; printf("nTich = %d",p); printf("nThuong = %d",i/j); x=(float)i/j; printf("n Thuong = %f",x); r = i % j ; printf("n Phan du la : %d",r); printf("n x + i = %f",x + i ); getch(); return 0; }
kết quả :
Tong = 14 Hieu = 6Tich = 40Thuong = 2 Thuong = 2.500000 Phan du la : 2 x + i = 12.500000
- Toán tử quan hệ:
Các toán tử quan hệ bao gồm :
!= : so sánh sự khác nhau
==: so sánh bằng nhau
>=: so sánh lớn hơn hoặc bằng
<=: so sánh nhỏ hơn hoặc bằng
> : so sánh lớn hơn
< : so sánh nhỏ hơn
Ví dụ:
#include <stdio.h> #include <conio.h> int main (){ int a,b; printf ("nNhap a = ");scanf ("%d",&a); printf ("nNhap b = ");scanf ("%d",&b); if (a == b){ printf ("na bang b"); } if (a != b){ printf ("na khong bang b"); } if (a > b){ printf ("na lon hon b"); } else printf ("na nho hon b"); if (a >= 0 && a <= 10 ){ printf ("na nam trong khoang 0 - 10"); } if (a < 0 || a > 100){ printf ("na nho hon 0 hoac a lon hon 100"); } getch (); return 0; }
kết quả :
Nhap a = 10 Nhap b = 15 a khong bang ba nho hon ba nam trong khoang 0 – 10
- Toán tử logic:
Các phép toán logic gồm:
– && : phép AND logic
– | | : phép OR logic
– ! : phép NOT logic
Trong đó:
– Phép && chỉ cho kết quả là đúng chỉ khi hai toán hạng đều đúng.
– Phép | | chỉ cho kết quả là sai khi hai toán hạng đều sai.
– Phép ! phủ định lại toán hạng. - Toán tử trên bit:
Các toán tử trên bit cho phép xử lý các tín hiệu ở mức bit . Các phép toán này không được dùng cho kiểu float và double.
Các toán tử này bao gồm:
– & : phép AND ở mức nhị phân.
– | : phép OR ở mức nhị phân.
– ^ : phép XOR ở mức nhị phân.
– << : Phép dịch trái(Shift left).
– >> : Phép dịch phải(Shift right).
– ~ : Phép đảo bit.
*Cách thực hiện các phép toán trên bit:
1 & 1 = 1 1 | 1 = 1 1 ^ 1 = 0
1 & 0 = 0 1 | 0 = 1 1 ^ 0 = 1
0 & 1 = 0 0 | 1 = 1 0 ^ 1 = 1
0 & 0 = 0 0 | 0 = 0 0 ^ 0 = 0
Các phép dịch trái “<<”, dịch phải “>>” gây nên sự lệch trái hay lệch phải nội dụng của một biến.
– x << M nghĩa là dịch sang trái số nguyên x đi M bit, tương đương với x*2M
– x >> M nghĩa là dịch sang phải số nguyên x đi M bit, tương đương với phép chia x/2M (chia lấy phần nguyên).
Ví dụ: Ta có thể thay phép tính x*80 bằng cách viết:
x << 6 + x << 2 vì 80 = 26 +24
- Toán tử tăng giảm:
Trong ngôn ngữ lập trình C, phép tăng giảm 1 có thể viết gọn lại như sau:
– i = i + 1 có thể được viết thành : i ++(tăng sau) hoặc ++ i(tăng trước).
– i = i – 1 có thể được viết thành : i– ( giảm sau) hoặc –i (giảm trước).
Phép ++i thì đầu tiên biến i được tăng 1, sau đó thực hiện phép gán. Còn phép i++ thì phép gán được thực hiện trước, phép tăng 1 sẽ được thực hiện sau.
Ví dụ: Với i = 3 ; j = 15;
a/ i = ++ j ; i = j kết quả i = 16, j = 16
b/ i = j++ kết quả i = 15, j = 16
c/ j = ++i + 5 kết quả i = 4, j = 9
d/ j = i++ +5 kết quả j = 8, i = 4 - Toán tử gán:
* Phép gán đơn giản
Cú pháp : Tên_một_biến = biểu_thức;
Ví dụ:
i = 3 ; /* I được gán giá trị là 3*/ /* i cộng với 4 được 7, gán 7 vào i*/ i = i + 4 ;
Điều này có nghĩa là giá trị của biểu thức bên phải dấu gán = sẽ được đặt vào ô nhớ của biến nằm bên trái dấu gán.
* Phép gán kép
Ví dụ 2.20:
/* Gán giá trị 5 cho ba biến a, b, c */
a= b = c = 5 ; /* Gán 5 cho c sau đó c cộng với b, và gán cho a */ a= b + ( c = 5) ;
* Các phép gán mở rộng
Trong ngôn ngữ lập trình C, phép gán mở rộng được quy định như sau :
x += y <=> x = x + y
x -= y <=> x = x – y
x *= y <=> x = x*y
x /= y <=> x = x / y
x %= y <=> x = x % y
x >>=y <=> x = x >> y
x <<=y <=> x = x << y
x &= y <=> x = x & y
x |= y <=> x = x | y
x ^= y <=> x = x ^ y
- Toán tử phẩy – biểu thức phẩy:
Mỗi câu lệnh trong ngôn ngữ lập trình C được kết thúc bằng dấu chấm phẩy, tuy nhiên trong một biểu thức của ngôn ngữ lập trình C có thể gồm nhiều câu lệnh được cách nhau bởi dấu phẩy.
Ví dụ:
x = a*b, q = x + y, k = q / z; - Phép toán biểu thức điều kiện:
Cú pháp : <Tên biến> = <Biểu thức điều kiện> ? <biểu thức 1> : <biểu thức 2>;
Trong ngôn ngữ lập trình C, toán tử điều kiện ( toán tử chấm hỏi “ ? ”) để so sánh giá trị đúng sai và cho phép có sự chọn lựa thích hợp.
Ví dụ:
#include <stdio.h> #include <conio.h> int main (){ int a,b; printf ("nNhap a = ");scanf ("%d",&a); printf ("nNhap b = ");scanf ("%d",&b); int Max = a > b ? a : b; int Min = a < b ? a : b; printf ("nMax = %d",Max); printf ("nMin = %d",Min); getch (); return 0; }
kết quả :Nhap a = 5 Nhap b = 9 Max = 9Min = 5
Tóm Tắt
Share this:
Thích bài này:
Thích
Đang tải…