Các hằng số toán học trong thư viện math.h năm 2024

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: = hoặc = = … = 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: ()

Trong ngôn ngữ C++ thì có thể dùng cú pháp: ()

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.

Các hằng số toán học trong thư viện math.h năm 2024
– 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: <

Các hằng số toán học trong thư viện math.h năm 2024
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ư: +=, -=, /=, %=, <<=, >>=,

Các hằng số toán học trong thư viện math.h năm 2024
\=, |=, ^=.

Phép toán a += b tương đương a = a + b.

Phép toán a <<= n tương đương a = a<

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ố: ++, – – . VD: ++a, – – a

• Dạng hậu tố: , – – . 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.

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:

Các hằng số toán học trong thư viện math.h năm 2024
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.