Trong bài viết này chúng ta sẽ cùng đi tìm hiểu về phương pháp ép kiểu dữ liệu trong Lập trình C/C++.
Ép kiểu dữ liệu trong lập trình C/C++
Ép kiểu dữ liệu tức là việc gán giá trị của một biến có kiểu dữ liệu này tới biến khác có kiểu dữ liệu khác.
Ta có cú pháp chung ép kiểu như sau:
(type) value;
Với type là kiểu dữ liệu, và value là giá trị hoặc 1 biến chứa dữ liệu.
Ép kiểu số nguyên sang số thực và ngược lại
Kiểu dữ liệu số thì có 2 kiểu cơ bản là số thực(float, double) và số nguyên(int, long, long). Chúng ta đã có cấu trúc chung cho việc ép kiểu, vậy hãy cùng thực hiện một số ví dụ sau.
Ép kiểu số thực sang số nguyên
#include <stdio.h>
int main()
{
float a = 5.235;
int b = (int)a;
long long c = ( long long)a;
printf("Kieu so thuc: %f", a);
printf("\nEp keu thanh keiu so nguyen int: %d", b);
printf("\nKieu so nguyen long long: %d", c);
}
Kết quả
Kieu so thuc: 5.235
Ep keu thanh keiu so nguyen int: 5
Kieu so nguyen long long: 5
Ép kiểu số nguyên sang số thực
#include <stdio.h>
int main()
{
int a = 10;
float b = (float)a;
double c = (double)a;
printf("Kieu so nguyen: %d", a);
printf("\nEp kieu sang so thuc float: %f", b);
printf("\nKieu so thuc double: %f", c);
}
Kết quả
Kieu so nguyen: 10
Ep kieu sang so thuc float: 10.00000
Kieu so thuc double: 10.0000
Ép kiểu số nguyên sang ký tự và ngược lại
Trong C/C++ thì char là kiểu dữ liệu ký tự, về bản chất thì nó cũng gần giống như int thế nhưng char sẽ không thể lưu giá trị âm. Giá trị mà nó có thể lưu là từ 0 cho tới 255 tương ứng với 8 bit, tức là 1 byte và sẽ được hiển thị dưới dạng là ký tự tương ứng với bảng mã ASCII.
#include <stdio.h>
int main()
{
char a = 'H';
printf("INT: %d", a);
printf("\nKy tu: %c", a);
}
Kết quả:
INT: 72
Ky tu: H
Trong bảng mã ASCII ký tự H trong hệ thập phân là 72, tương ứng biến a đang mang giá trị 72, và để in ký tự của a ta sẽ sử dụng %c.
Vậy làm thế nào để ép 1 ký tự số thành 1 số, và từ 1 số sang 1 ký tự số.
(Hehe ở phần này bạn chú y một chút là mình sẽ dùng từ là ký tự số với số nhé)
Trong bảng mã ASCII thì ký tự số sẽ có mã thập phân là từ 48 tương ứng với ký tự 0, cho tới 57 tương ứng với ký tự 9.
Như vậy để chuyển 1 ký tự số thành số ta chỉ cần trừ 48 tương ứng trong bảng mã ASCII, và ngược lại để chuyển số thành ký tự số ta sẽ cộng 48.
Ta có ví dụ sau:
Chuyển ký tự số ‘5’ thành số 5.
#include <stdio.h>
int main()
{
char a = '5';
int b = a - 48;
printf("\nKet qua: %d", b);
}
Kết quả:
Ket qua: 5
Ngược lại ta thử chuyển số 7 thành ký tự 7
#include <stdio.h>
int main()
{
int a = 7;
int b = a + 48;
printf("\nKet qua: %c", b);
}
Ket qua: 7
[Xem tất cả bài viết chủ đề C/C++ tại đây]