Ép Kiểu Trong C, C++ Là Gì? Cách ép Kiểu Trong C, C++ đơn Giản
Có thể bạn quan tâm
É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
Khi làm việc trong ngôn ngữ C/C++ trên máy tính, trong một số trường hợp tính toán cụ thể hoặc cần biểu diễn giá trị dưới những định dạng khác nhau, chúng ta cần thực hiện ép kiểu (casting) để chuyển đổi qua lại những kiểu dữ liệu có khả năng lưu trữ giá trị giống nhau. Bài viết này sẽ hướng dẫn bạn thực hiện thao tác đó trong C/C++.
I. Ép kiểu là gì?
1. Khái niệ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ụ:
- x=12.3456 (x là số thực, x ∈ R) và bạn muốn ép kiểu x thành một số nguyên (x ∈ Z). Sau khi ép kiểu, x=12
- y=978 (y là số nguyên, y ∈ Z) và bạn muốn ép kiểu x thành một số thực (y ∈ R). Sau khi ép kiểu, y=987.000...
Ép kiểu
2. Khi nào cần ép kiểu?
- Đưa dữ liệu về định dạng mà mình mong muốn giúp xử lý cho thuật toán.
- Khởi tạo hoặc gán một biến với giá trị của một kiểu dữ liệu khác.
- Kiểu dữ liệu của biến trả về kết quả khác với kiểu dữ liệu trả về của hàm đó.
Khi nào cần ép kiểu?
II. Cách ép kiểu ngầm định trong C, C++ (Implicit type conversion)
1. Ép kiểu ngầm định là gì?
É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.
2. Cách ép kiểu ngầm định
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ả:
- a là kiểu số nguyên (int) và số 5 là một số nguyên dương (cùng kiểu dữ liệu) nên khi xuất kết quả ra màn hình kết quả sẽ là a=5.
- b là kiểu số thực (float) mà 5 là một số nguyên dương (không cùng kiểu dữ liệu) nên khi xuất kết quả ra màn hình kết quả sẽ là b=5.0f.
Ví dụ ép kiểu ngầm định
3. Độ ưu tiên kiểu dữ liệu khi ép kiểu
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
4. Các trường hợp lỗi ép kiểu thường gặp
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
III. Ép kiểu tường minh trong C, C++ (Explicit type conversion)
1. Ép kiểu tường minh là gì?
É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.
2. Cách ép kiểu tường minh
Cú pháp: static_cast<type>(value);
Giải thích:
- static_cast: Toán tử ép kiểu
- type: kiểu dữ liệu.
- value: giá trị biến hoặc biểu thức.
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.Từ khóa » ép Kiểu C++ Là Gì
-
Ép Kiểu Trong C++ - Techacademy
-
Ép Kiểu Trong C++ - Học Lập Trình C++ Online - Viettuts
-
4.2 Ép Kiểu Dữ Liệu - Khóa Học C++
-
Ép Kiểu Tường Minh Trong C++ (Explicit Type Conversion In C++)
-
Sự Thật Về Ép Kiểu Trong C, C++ Là Gì? Cách ép Kiểu ... - Tiên Kiếm
-
Toán Tử ép Kiểu (casting) Trong C++
-
Ép Kiểu Trong C, C++ Là Gì? Cách ép Kiểu Trong C/C++ đơn Giản
-
Phương Pháp ép Kiểu Dữ Liệu Trong C++
-
Bài 15: Ép Kiểu Dữ Liệu Trong Lập Trình C - Khuê Nguyễn
-
Ép Kiểu Int Sang Float Và Ngược Lại Trong C/C++ - Lập Trình Không Khó
-
Ép Kiểu Trong C - Hoclaptrinh
-
Vì Sao Cách ép Kiểu Trong C Không An Toàn Và Nên Sử Dụng ...
-
5 Toán Tử ép Kiểu Trong C++ | VnCoding
-
[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 ...