Hình ảnh minh họa: Phép chuyển đổi số học thông thường
Giới thiệu
Trong ngôn ngữ lập trình C, "ép kiểu" là một phương pháp để chuyển đổi một biến từ kiểu dữ liệu này sang kiểu dữ liệu khác. Ví dụ, khi bạn muốn lưu trữ một giá trị long cho một số nguyên, bạn cần ép kiểu long thành int. Bằng cách sử dụng toán tử ép kiểu, bạn có thể chuyển đổi giá trị từ một kiểu dữ liệu sang một kiểu khác.
Ví dụ về toán tử ép kiểu trong C
Dưới đây là một ví dụ sử dụng toán tử ép kiểu để chia một biến nguyên như một phép tính số thực:
#include int main() { int sochia = 32, sobichia = 6; double kq; kq = (double) sochia / sobichia; printf("Giá trị của kq là: %fn", kq ); printf("n===========================n"); printf("QTM chúc các bạn học tốt! n"); }
Kết quả của đoạn code trên là giá trị của biến kết quả có kiểu double:
Giá trị của kq là: 5.333333 =========================== QTM chúc các bạn học tốt!
Lưu ý rằng trong ví dụ trên, toán tử ép kiểu có quyền ưu tiên hơn phép chia. Do đó, giá trị của biến sochia
được chuyển đổi thành kiểu double trước khi thực hiện phép chia trong kiểu dữ liệu double.
Sự nâng cấp số nguyên trong C
"Sự nâng cấp số nguyên" là quá trình chuyển đổi các giá trị số nguyên nhỏ hơn int hoặc unsigned int thành kiểu int hoặc unsigned int. Ví dụ, nếu bạn thêm một ký tự vào một số nguyên int, chương trình sẽ tự động nâng cấp số nguyên và chuyển đổi giá trị của ký tự thành mã ASCII trước khi thực hiện phép toán cộng.
#include int main() { int i = 21; char c = 'c'; /* Giá trị ASCII là 99 */ int tong; tong = i + c; printf("Giá trị của tổng là: %dn", tong ); printf("n===========================n"); printf("QTM chúc các bạn học tốt! n"); }
Kết quả của đoạn code trên là 120, bởi vì trình biên dịch thực hiện sự nâng cấp số nguyên và chuyển đổi giá trị của ký tự 'c' thành mã ASCII trước khi thực hiện phép toán cộng.
Phép chuyển đổi số học thông thường
"Phép chuyển đổi số học thông thường" là cách chuyển đổi giá trị của một biến thành một kiểu dữ liệu phổ biến. Trình biên dịch sẽ tự động thực hiện sự nâng cấp số nguyên từ kiểu thấp đến kiểu cao. Dưới đây là thứ tự chuyển đổi kiểu dữ liệu:
- char -> short -> int -> unsigned int -> long -> unsigned long -> float -> double
Phép chuyển đổi số học thông thường không được áp dụng cho các toán tử gán và toán tử logic: && và ||.
#include int main() { int i = 21; char c = 'c'; /* Giá trị ASCII là 99 */ float tong; tong = i + c; printf("Giá trị của tổng là: %fn", tong ); printf("n===========================n"); printf("QTM chúc các bạn học tốt! n"); }
Kết quả của đoạn code trên là đầu tiên giá trị của biến c
được chuyển thành số nguyên, sau đó giá trị của biến i
và c
được biến đổi thành kiểu float và kết quả phép toán cộng cũng được chuyển sang kiểu float.
Hy vọng với bài viết ngắn này, các bạn đã hiểu về khái niệm "ép kiểu" trong ngôn ngữ C và cách chuyển đổi kiểu dữ liệu. Để tìm hiểu thêm về lập trình C, hãy tiếp tục theo dõi các bài viết tiếp theo của chúng tôi.
Theo Tutorialspoint