Bài 5: Toán Tử Và Một Số Hàm Tính Toán Trong C/C++ | Phuong's Blog
Có thể bạn quan tâm
Một số toán tử (phép toán) đã được mình giới thiệu sơ qua trong phần Các kí tự được sử dụng trong ngôn ngữ C/C++ ở bài viết Một số vấn đề cơ bản trong ngôn ngữ C. Trong bài viết này, mình sẽ nói rõ hơn và đầy đủ hơn về chúng.
1. Phép gán “=”
Cú pháp: <biến> = <giá trị> hoặc <biến 1> = <biến 2> = … = <giá trị> trong trường hợp muốn gán nhiều biến cùng lúc. Với giá trị ở đây có thể là một hằng số, một biến, hoặc một biểu thức toán học.
2. Các phép toán số học
– Các phép toán cộng, trừ, nhân: +, -, * (đối với số nguyên hoặc số thực)
– Phép chia: /
• Khi 2 số đều là số nguyên => phép chia lấy phần nguyên. VD: 9/2 = 4
• Khi có 1 trong 2 hoặc cả 2 là số thực => phép chia số thực. VD: 9.0/2 = 9/2.0 = 9.0/2.0 = 4.5
– Phép chia lấy phần dư: % (chỉ dùng được với số nguyên). VD: 9%4 = 1
3. Toán tử ép kiểu
Giả sử mình có 2 biến số nguyên a, b và biến số thực c. Mình muốn gán kết quả của phép chia số thực a/b cho c. Nhưng các bạn xem phần phía trên, 2 số nguyên chia nhau thì trở thành phép chia nguyên, do đó khi gán kết quả sẽ không như ta mong muốn. Cũng theo phần trên thì muốn phép chia là phép chia số thực, thì cần có ít nhất 1 toán hạng là số thực. Như vậy, ta cần “biến” giá trị của biến a hoặc b thành số thực, để làm được điều, ta dùng toán tử ép kiểu.
Cú pháp: (<kiểu dữ liệu muốn ép>) <biến>
Trong ngôn ngữ C++ thì có thể dùng cú pháp: <kiểu dữ liệu muốn ép> (<biến>)
VD: (float) a; //ép kiểu sang kiểu float.
Đối với C++: float (a);
Và trong phép chia đề cập phía trên thì ta gán:
c = (float) a/b;
4. Các phép toán so sánh số học
> (lớn hơn), < (bé hơn), >= (lớn hơn hoặc bằng), <= (bé hơn hoặc bằng), == (bằng), != (khác)
Lưu ý: kết quả một một biểu thức so sánh là 1 (true) hoặc 0 (false)
VD: kết quả của biểu thức 2 > 3 là 0 (false)
5. Các phép toán logic
! (phép phủ định), && (phép and), || (phép or) Kết quả của một biểu thức logic là 1 (true) hoặc 0 (false).
VD: kết quả của biểu thức (2>3)||(6>5) là 1 (true)
6. Các phép toán thao tác trên bit đối với số nguyên
Ngôn ngữ C/C++ có một nhóm các toán tử xử lí, thao tác trên từng bit của số nguyên, gốm các phép toán:
– Phép and bit &, phép or bit |, phép xor bit ^: thực hiện thao tác and/or/xor trên từng cặp bit của 2 số nguyên. Sau đây là bảng chân trị của các phép and, or, xor.
– Phép đảo bit ~: thực hiện đảo các bit 1 thành 0, 0 thành 1.
– Phép dịch trái n bit: <<n, thực hiện thao tác bỏ đi n bit đầu tiên, dịch tuần tự các bit sang trái, những bit trống sẽ mang giá trị 0. Chắc hơi khó hiểu, các bạn xem hình minh hoạ nhé. Giả sử mình cần thực hiện phép toán: 17<<2 (17 dịch trái 2 bit)
Mô tả thao tác dịch bit
Sau khi dịch hết các bit, 2 bit trống ở cuối sẽ có giá trị 0 (màu đỏ). Và kết quả của phép toán này là 17<<2 = 68.
– Tương tự ta có phép dịch phải n bit: >>n, thực hiện thao tác bỏ đi n bit cuối cùng, dịch tuần tự các bit sang phải, những bit trống cũng sẽ mang giá trị 0.
7. Các phép toán “tích luỹ”
Phần này mình muốn nói đến các phép toán như: +=, -=, /=, %=, <<=, >>=,
=, |=, ^=.
Phép toán a += b tương đương a = a + b.
Phép toán a <<= n tương đương a = a<<n.
Nêu ví dụ vậy thôi chắc các bạn hiểu rồi ha, dễ mà :D.
8. Toán tử tăng, giảm 1
– Đối với phép toán dạng a = a + 1 hay a = a – 1, ngoài việc dùng toán tử tích luỹ phía trên, C/C++ còn cung cấp toán tử tăng, giảm 1.
– Kí hiệu: ++, – –
– Toán tử này có 2 dạng:
• Dạng tiền tố: ++<biến>, – – <biến>. VD: ++a, – – a
• Dạng hậu tố: <biến>++, <biến> – – . VD: a++, a – –
– Sự khác nhau giữa 2 dạng này là thứ tự thực hiện toán tử tăng, giảm. Ta xét ví dụ với 2 câu lệnh: a = ++b và a = b++, giả sử b có giá trị là 3
• Câu lệnh a = ++b: b sẽ được tăng 1 trước, rồi sau đó mới được gán cho a => sau khi thực hiện lệnh: a = 4, b = 4.
• Câu lệnh a = b++: giá trị của biến b được gán cho a, sau đó b mới được tăng 1 => sau khi thực hiện lệnh: a = 3, b = 4.
9. Một số hàm tính toán trong C/C++
Trong phần này, mình muốn đề cập đến một số hàm trong thư viện math.h (đối với C) hay cmath (đối với C+++). Và sau đây là một số hàm thông dụng:
Lưu ý: Các giá trị x, y phải đúng kiểu dữ liệu của hàm, nếu không đúng, trình dịch sẽ báo lỗi, bạn chỉ cần ép kiểu lại cho đúng là được.
Wow, bài viết dài quá rồi. Mình cũng không thể nào nói ngắn hơn được nên đành chịu vậy. Thôi mình xin kết thúc bài viết tại đây. Trên đây là một số toán tử và các hàm thường dùng trong C/C++ mà các bạn cần lưu ý. Cảm ơn các bạn đã theo dõi.
Chia sẻ:
- Tweet
Có liên quan
Từ khóa » Tính Số Thực Trong C++
-
Nhân Hai Số Thực Trong C++ - Freetuts
-
Nhập, Xuất Mảng Các Số Thực Bằng C / C++ - Freetuts
-
1.8 Các Phép Toán Cơ Bản - Khóa Học C++
-
Số Tự Nhiên Và Số Chấm động Trong C++ (Integer, Floating Point)
-
Kiểu Dữ Liệu Trong C/C++
-
Toán Tử Trong C++
-
Các Kiểu Dữ Liệu Trong Lập Trình C/C++ (Data Type) | TopDev
-
Kiểm Tra Số Nguyên Trong C++
-
Toán Tử Số Học Trong C++
-
[Lập Trình C++ Cơ Bản] Bài 3: Kiểu Dữ Liệu, Hằng Và Biến. Câu Lệnh ...
-
Nhân Hai Số Thực Trong C++ - Bài Tập C++ Có Lời Giải
-
[PDF] Bài 2 - NGÔN NGỮ LẬP TRÌNH C/C++ - FIT@MTA
-
Lập Trình C++ Cơ Bản - AnhPhuongIT
-
Căn Bậc 2 Trong C++ - Techacademy