Các phép toán logic, phép toán BIT và các hàm toán học
11LẬP TRÌNH C++LẬP TRÌNH C++§4. Các phép toán Logic, §4. Các phép toán Logic, phép toán BIT và phép toán BIT và các hàm toán họccác hàm toán học 22I. I. Các toán tử quan hệ và các toán tử LogicCác toán tử quan hệ và các toán tử LogicÝ tưởng chính của toán tử quan hệ và Ý tưởng chính của toán tử quan hệ và toán tử Logic là đúng hoặc sai. Trong C toán tử Logic là đúng hoặc sai. Trong C mọi giá trị khác 0 được gọi là đúng, còn mọi giá trị khác 0 được gọi là đúng, còn sai là 0. Các biểu thức sử dụng các toán sai là 0. Các biểu thức sử dụng các toán tử quan hệ và Logic trả về 0 nếu sai và tử quan hệ và Logic trả về 0 nếu sai và trả về 1 nếu đúng.trả về 1 nếu đúng.Để khai báo kiểu logic :Để khai báo kiểu logic :bool p,q;bool p,q; 33Các toán tử quan hệ Các toán tử quan hệ Toán tửToán tửÝ nghĩaÝ nghĩa>>Lớn hơnLớn hơn>=>=Lớn hơn hoặc bằngLớn hơn hoặc bằng<<Nhỏ hơnNhỏ hơn<=<=Nhỏ hơn hoặc bằngNhỏ hơn hoặc bằng====BằngBằng!=!=KhácKhácCác toán tử LogicCác toán tử LogicToán tửToán tửÝ nghĩaÝ nghĩa&&&&Và (AND)Và (AND)||||hoặc (OR)hoặc (OR)!!Phủ định (NOT)Phủ định (NOT) 44II. Bảng chân lý II. Bảng chân lý ppqqp&&qp&&qp||qp||q!p!p0000000011001100111111000011001111111100 55III. Các toán tử Bitwise III. Các toán tử Bitwise Các toán tử Bitwise:Các toán tử Bitwise:Các toán tử Bitwise ý nói đến kiểm tra, gán hay sự Các toán tử Bitwise ý nói đến kiểm tra, gán hay sự thay đổi các Bit thật sự trong 1 Byte của Word, mà thay đổi các Bit thật sự trong 1 Byte của Word, mà trong C chuẩn là các kiểu dữ liệu và biến char, int. trong C chuẩn là các kiểu dữ liệu và biến char, int. Ta không thể sử dụng các toán tử Bitwise với dữ Ta không thể sử dụng các toán tử Bitwise với dữ liệu thuộc các kiểu float, double, long double, void liệu thuộc các kiểu float, double, long double, void hay các kiểu phức tạp khác.hay các kiểu phức tạp khác. 66Toán tửToán tửÝ nghĩaÝ nghĩa&&ANDAND||OROR^^XORXOR~~NOTNOT>>>>Dịch phảiDịch phải<<<<Dịch tráiDịch tráiBảng chân lý của toán tử ^ (XOR)Bảng chân lý của toán tử ^ (XOR)ppqqp^qp^q000000001111110011111100 77IV. Toán tử ? cùng với :IV. Toán tử ? cùng với :C có một toán tử rất mạnh và thích hợp để thay thế cho các câu C có một toán tử rất mạnh và thích hợp để thay thế cho các câu lệnh của If-Then-Else. Cú pháp của việc sử dụng toán tử ? là:lệnh của If-Then-Else. Cú pháp của việc sử dụng toán tử ? là:E1?E2:E3E1?E2:E3Trong đó E1, E2, E3 là các biểu thức.Trong đó E1, E2, E3 là các biểu thức.Ý nghĩa: Trước tiên E1 được ước lượng, nếu đúng E2 được ước Ý nghĩa: Trước tiên E1 được ước lượng, nếu đúng E2 được ước lượng và nó trở thành giá trị của biểu thức; nếu E1 sai, E2 được lượng và nó trở thành giá trị của biểu thức; nếu E1 sai, E2 được ước lượng và trở thành giá trị của biểu thức.ước lượng và trở thành giá trị của biểu thức.Ví dụ:Ví dụ:X = 10X = 10Y = X > 9 ? 100 : 200Y = X > 9 ? 100 : 200Thì Y được gán giá trị 100, nếu X nhỏ hơn 9 thì Y sẽ nhận giá trị Thì Y được gán giá trị 100, nếu X nhỏ hơn 9 thì Y sẽ nhận giá trị là 200. Đoạn mã này tương đương cấu trúc if như sau:là 200. Đoạn mã này tương đương cấu trúc if như sau:X = 10X = 10if (X < 9) Y = 100if (X < 9) Y = 100else Y = 200else Y = 200 88V. Cách viết tắt trong CV. Cách viết tắt trong CCó nhiều phép gán khác nhau, đôi khi ta có thể sử Có nhiều phép gán khác nhau, đôi khi ta có thể sử dụng viết tắt trong C nữa. Chẳng hạn:dụng viết tắt trong C nữa. Chẳng hạn:x = x + 10 được viết thành x +=10x = x + 10 được viết thành x +=10Toán tử += báo cho chương trình dịch biết để tăng Toán tử += báo cho chương trình dịch biết để tăng giá trị của x lên 10.giá trị của x lên 10.Cách viết này làm việc trên tất cả các toán tử nhị Cách viết này làm việc trên tất cả các toán tử nhị phân (phép toán hai ngôi) của C. Tổng quát:phân (phép toán hai ngôi) của C. Tổng quát:(Biến) = (Biến)(Toán tử)(Biểu thức)(Biến) = (Biến)(Toán tử)(Biểu thức)có thể được viết:có thể được viết:(Biến)(Toán tử)=(Biểu thức)(Biến)(Toán tử)=(Biểu thức)x = x * 10 được viết thành x *=10x = x * 10 được viết thành x *=10 99VI. Các hàm toán học :VI. Các hàm toán học :Để dùng được các hàm toán học ta phải sử dụng thư viện Để dùng được các hàm toán học ta phải sử dụng thư viện <math.h> :<math.h> :# include “math.h”# include “math.h”Các hàm toán học :Các hàm toán học :sqrt(x): cho căn bậc 2 của số thực xsqrt(x): cho căn bậc 2 của số thực xpow(x,y) : cho x mũ y (x,y là số thực)pow(x,y) : cho x mũ y (x,y là số thực)sin(x); cos(x); tan(x); x tính bằng radiansin(x); cos(x); tan(x); x tính bằng radianatan(x); asin(x); acos(x); cho góc tính bằng radianatan(x); asin(x); acos(x); cho góc tính bằng radianexp(x) cho e mũ xexp(x) cho e mũ xlog(x); cho log cơ số e của xlog(x); cho log cơ số e của xlog10(x); cho log cơ số 10 của xlog10(x); cho log cơ số 10 của xfabs(x); cho giá trị tuyệt đối của xfabs(x); cho giá trị tuyệt đối của x . C++§4. Các phép toán Logic, §4. Các phép toán Logic, phép toán BIT và phép toán BIT và các hàm toán họccác hàm toán học 22I. I. Các toán tử quan hệ và các. Các toán tử Bitwise III. Các toán tử Bitwise Các toán tử Bitwise :Các toán tử Bitwise: Các toán tử Bitwise ý nói đến kiểm tra, gán hay sự Các toán tử Bitwise