Bài 8: Các kiểu dữ liệu và cách sử dụng


1. Kiểu dữ liệu là gì?

Việc viết chương trình máy tính nhằm mục đích là xử lý dữ liệu, hay nói một cách khác là biến đổi dữ liệu đầu vào thành dữ liệu đầu ra, có được kết quả như mong muốn. Dữ liệu có thể là số, chữ cái, âm thanh hoặc video. C++ chỉ cho phép chương trình xử lý trên một số kiểu dữ liệu nhất định. Mỗi kiểu dữ liệu được định nghĩa là một tập các giá trị và các phép toán thao tác trên tập giá trị đó.
C++ chia thành hai tập hợp kiểu dữ liệu chính: kiểu dữ liệu cơ sở (built – in) đây là kiểu mà ngôn ngữ lập trình cung cấp cho người lập trình và kiểu do người dùng định nghĩa (user – defined). Trong đó kiểu dữ liệu xây dựng sẵn gồm kiểu số nguyên và kiểu số thực.

2. Các kiểu số nguyên

C++ cung cấp 9 kiểu số nguyên, sự khac biệt giữa các kiểu số nguyên này là kích thước và phạm vi biểu diễn dữ liệu. Ba kiểu dữ liệu chính là int, charbool. Việc xuất hiện nhiều kiểu số nguyên là nhằm tối ưu hoá bộ nhớ lưu trữ, giúp tiết kiệm bộ nhớ và tăng tốc độ khả năng xử lý, tính toán.

2.1. Dữ liệu kiểu nguyên

Dữ liệu kiểu int, short, long bao gồm cả số nguyên âm (số nguyên có dấu gồm: signed int, signed short, signed long) và số nguyên dương (số nguyên không dấu gồm: unsigned int, unsigned short, unsigned long). Ví dụ: 50, 0, 5, -345, +200, -1234
Phạm vi biểu diễn của các kiểu số nguyên được liệt kê như bảng sau:

Phạm Vi biểu diễn các kiểu số nguyên

Phạm Vi biểu diễn các kiểu số nguyên

Nhấn mạnh, các dữ liệu kiểu unsigned short, unsigned int, unsigned long chỉ bao gồm các số nguyên dương, không bao gồm các số nguyên âm. Ví dụ: 123, 678, 1234567, 0.

2.2. Dữ liệu kiểu bool

Dữ liệu kiểu bool dùng để biểu diễn dữ liệu kiểu logic (luận lý). Kiểu bool chỉ bao gồm hai giá trị true (đúng) và false (sai). Loại dữ liệu này được dùng khi chương trình cần kiểm tra một điều kiện và các lệnh có được thực hiện hay không dựa vào điều kiện đúng hay sai. Trong những bài học tiếp theo, ta sẽ được thực hành nhiều về kiểu dữ liệu này.

2.3. Dữ liệu kiểu char

Dữ liệu kiểu char được dùng để lưu trữ một ký tự đơn bao gồm các chữ cái trong bảng chữ cái, các chữ số từ 0 đến 9 và các ký tự đặc biệt như $, @, *, +, … Các ký tự được đặt trong cặp dấu nháy đơn. Ví dụ: ‘a’, ‘1’, ‘B’, ‘$’.
Các ký tự được lưu trữ trong máy tính điện tử bởi bảng mã hoá ASCII. Có tất cả 256 ký tự bao gồm các ký tự in được và các ký tự có chức năng điều khiển. Mỗi ký tự được lưu trữ bằng 1 byte trong bộ nhớ.
Đặc biệt hơn, bên cạnh bảng mã hoá ASCII, ngôn ngữ C++ còn cung cấp bảng mã hoá Unicode sử dụng 2 byte để lưu trữ 1 ký tự. Bảng mã này mô tả được 65536 ký tự, trong đó 256 ký tự đầu tiên cùng giá trị với 256 ký tự trong bảng bảng ASCII. Do đó số lượng các ký tự được mã hoá nhiều hơn nên khi xây dựng các ứng dụng quốc tế với các ngôn ngữ khác nhau, ta cần sử dụng bảng mã hoá Unicode này.
Một số ký tự trong C/C++ khi đứng trước bởi dấu \ thì chúng sẽ mang một ý nghĩa đặc biệt như bắt đầu một dòng mới ‘\n’ hay tạo một tab ‘\t’.

Chuỗi ký tự Ý nghĩa
\\ Ký tự \
\’ Ký tự ‘
\” Ký tự “
\? Ký tự ?
\a Tiếng kêu cảnh báo bip
\b Xoá một ký tự ngay trước
\n Xuống dòng kế tiếp
\r Nhảy về đầu hàng, không xuống hàng
\t tab ngang
\v tab dọc
\nnn Số hệ cơ số 8 của một số có 3 chữ số
\xhhhh Số hệ cơ số 16 của một hoặc nhiều chữ số
\0 Null

Ví dụ: Viết chương trình có sử dụng ký tự để xuống dòng.

// Author: Hoang Van Tuan
// Website: timoday.edu.vn

#include <iostream>

using namespace std;

// ===Chương trình chính===
int main()
{
    cout<<"Toi dang hoc ngon ngu lap trinh:";
    cout<<"\nPython";

    return 0;
}

Ta nhận thấy, ký tự ‘\n’ sẽ thực hiện việc di chuyển con trỏ xuóng đầu dòng tiếp theo để tiếp tục in xâu “Python” ra ngoài màn hình.
Kết quả chương trình trên như sau:

Kết quả chương trình minh hoạ xuống dòng

Kết quả chương trình minh hoạ xuống dòng

3. Các kiểu số thực

Trong một giá trị kiểu dữ liệu số thực bao gồm hai thành phần: phần nguyên và phần thập phân được ngăn cách với nhau bởi dấu chấm. Ví dụ: 2.3, -6.67
C++ hỗ trợ ba kiểu dữ liệu số thực: float, double và long double. Kích cỡ và phạm vi biểu diễn của chúng được mô tả như bảng dưới đây:

Kiểu Kích thước Phạm vi biểu diễn
float 4 byte 3.4E-38 đến 3.4E+38
double 8 byte 1.7E-308 đến 1.7E+308
double 10 byte 3.4E-4932 đến 1.1E4932

4. Xác định kích thước kiểu dữ liệu

Để xác định kích thước kiểu dữ liệu, ta sử dụng toán tử sizeof(). Toán tử này có một tham số, đó có thể là một kiểu dữ liệu hay một biến và trả về kích cỡ bằng byte của kiểu hay đối tượng đó.
Ví dụ: Viết chương trình hiển thị kích thước của các kiểu dữ liệu int, float, bool, char lên màn hình.

// Author: Hoang Van Tuan
// Website: timoday.eu.vn

#include <iostream>

using namespace std;

// ===Chương trình chính===
int main()
{
    cout<<"Kich thuoc kieu int: "<<sizeof(int)<<" byte\n";
    cout<<"Kich thuoc kieu float: "<<sizeof(float)<<" byte\n";
    cout<<"Kich thuoc kieu bool: "<<sizeof(bool)<<" byte\n";
    cout<<"Kich thuoc kieu char: "<<sizeof(char)<<" byte\n";

    return 0;
}
Kết quả chương trình minh hoạ xác định kích thước kiểu dữ liệu

Kết quả chương trình minh hoạ xác định kích thước kiểu dữ liệu

Có thể bạn sẽ thích…

Trả lời

EnglishVietnamese