Ép kiểu (Type Casting) là gì? Hướng dẫn ép kiểu trong C/C++ đơn giản, dễ hiểu. Các ép kiểu ngầm định và ép kiểu thường mình thực hiện như thế nào? Xem thêm ép kiểu
Ép kiểu là hành động thay đổi kiểu dữ liệu của một biến (hoặc biểu thức) bất kỳ sáng một kiểu dữ liệu khác.
Ví dụ:
Ép kiểu
Khi nào cần ép kiểu?
Ép kiểu ngầm định (Implicit type conversion) là việc chương trình lập trình sẽ tự hiểu và chuyển đổi kiểu dữ liệu của biến mà không cần sự can thiệp của bất cứ câu lệnh nào từ lập trình viên.
Ép kiểu ngầm định thường dùng khi ta chuyển đổi một biến sang một kiểu dữ liệu tương tự lớn hơn để đảm bảo độ chính xác, không sợ bị mất hay sai lệch dữ liệu và chỉ sử dụng khi biết rõ biến đó chứa kiểu dữ liệu tương ứng với kiểu mà ta cần chuyển tới.
Khi bạn gán một số nguyên bất kỳ cho biến có kiểu dữ liệu là số thực. Hệ thống sẽ tự ngầm định và chuyển số nguyên đó thành số thực mà không cần sự can thiệp của bất kỳ cú pháp hay thuật toán nào.
Ví dụ: bạn gán a và b bằng 5. Trong đó, a là kiểu int (số nguyên) và b là kiểu float (số thực).
Kết quả:
Ví dụ ép kiểu ngầm định
Tham khảo bài viết: Các kiểu dữ liệu trong C/C++ thường gặp
Độ ưu tiên kiểu dữ liệu khi ép kiểu
Trường hợp 1: Lỗi kết quả (output) khi ép kiểu từ một kiểu dữ liệu lớn hơn sang kiểu dữ liệu nhỏ hơn
Khi gán x là giá trị kiểu int (số nguyên) cho biến c là giá trị kiểu char (ký tự) có phạm vi -128 đến 127 nên khi xuất kết quả ra màn hình, c sẽ mang một giá trị sai hoan toàn.
Thuật toán: Trường hợp 1.
Trường hợp lỗi ép kiểu 1
Trường hợp 2: Kết quả bị sai lệch khi ép kiểu từ một kiểu số chấm động
Khi gán x là giá trị kiểu double (số thực) cho biến f là giá trị kiểu float (số thực chấm động) thì f chỉ có thể giữ độ chính xác đến 7 chữ số, còn lại kết quả phía sau đều bị sai lệch.
Thuật toán: Trường hợp 2.
Trường hợp lỗi ép kiểu 2
Trường hợp 3: Ép kiểu một biến từ số thực chấm động sang số nguyên sẽ làm mất đi phần thập thân.
Khi gán x là giá trị kiểu double (số thực) cho biến a là giá trị kiểu int (số nguyên) thì a chỉ có thể giữ lại phần số nguyên, phần thập phân sẽ bị mất và không được làm tròn.
Thuật toán: Trường hợp 3.
Trường hợp lỗi ép kiểu 3
Ép kiểu tường minh (Explicit type conversion) là việc lập trình viên sẽ thực hiện việc gán và chuyển đổi kiểu dữ liệu của biến bằng các câu lệnh hoặc phép gán.
Cú pháp: static_cast<type>(value);
Giải thích:
Ví dụ: Nhập 2 số nguyên x, y bất kỳ. Hãy tính d=x/y.
Thuật toán: Bài tập minh họa ép kiểu tường minh
Cách ép kiểu tường minh
Trên đây là các cách Ép kiểu trong ngôn ngữ lập trình C/C++ đơn giản nhất. Bạn có thể tham khảo và lựa chọn thực nghiệm trên thiết bị của mình. Chúc các bạn thành công.
Trung tâm chuyên sửa chữa thay thế, bảo hành miễn phí, nhượng quyền thương hiệu trungtambaohanh.com + marketing.