Các dạng dữ liệu sô nguyên (tiếp tục)
Mặc dù C++ cung cấp nhiều dạng dữ liệu, theo nghĩa rộng nhất chỉ có hai dạng: số và kí tự. Các dạng dữ liệu số được chia
thành hai hạng mục: số nguyên (còn gọi là whole numbers) và số dấu phẩy động (floating-point numbers hay còn gọi là số
thực – real numbers) như được thể hiện trong ảnh dưới:
Số nguyên là số nguyên như -2, 19 và 24
Số dấu phẩy động có điểm thập phân (demical point) như -2.35, 19.0 va 0.024. Ngoài ra dạng dữ liệu số nguyên được chia
thành nhiều phân loại hơn.
Xem xét đầu tiên của bạn cho chọn dạng dữ liệu tốt nhất cho một biến số là như sau:
+ Liệu biến cần giữ giá trị số nguyên hay số dấu phẩy động.
+ Số nhỏ nhất và số lớn nhất cái các biến cần có thể lưu giữ.
+ Liệu biến có cần giữ số có dấu (signed numbers – số âm và số dương) hay chỉ số không dấu (là 0 và số dương)
+ Số số sau vị trí điểm thập phân chính xác đến phạm vi nào được cần cho các giá trị được lưu giữ trong biến.
Hãy bắt đầu bằng cách nhìn vào dạng dữ liệu số nguyên. C++ có 8 dạng dữ liệu khác nhau cho lưu giữ số nguyên. Chúng
khác nhau theo có bao nhiêu bytes bộ nhớ chúng có để lưu giữ dữ liệu và phạm vi nào của giá trị chúng có thể giữ. Số bytes
một dạng dữ liệu có thể giữ được gọi là kích cỡ của nó. Điển hình thì, kích cỡ dạng dữ liệu càng lớn, phạm vi biến nó
có thể giữ càng lớn.
Chú ý các dạng dữ liệu long long int và unsigned long long int được giới thiệu trong C++ 11.
Nhớ lại rằng 1 byte được hình thành bởi 8 bits. Vì vậy một dạng dữ liệu cái lưu giữ dữ liệu trong 2 bytes bộ nhớ có thể lưu
giữ 16 bit thông tin. Cái này có nghĩa nó có thể lưu giữ mô hình 2¹6 số, cái là 65,536 số. Một dạng dữ liệu cái sử dụng
4 bytes bộ nhớ có 32 bits, vì vậy nó có thể giữ mô hinh 2³2 số khác nhau, cái là 4,294,967,296 số.
Ví dụ, dạng dữ liệu unsigned short cái lưu giứ số nguyên short không âm như tuổi và cân nặng, sử dụng 16 bít của nó
để trình bày từ giá trị 0 đến 65.535. Dạng dữ liệu short, ngược lại lưu giữ cả số âm và số dương, vì vậy nó sử dụng
16 bits của nó để trình bày giá trị từ -32,768 đến +32,767. Nhận thấy bảng dưới , các dạng dữ liệu int và long
có cùng kích cỡ và phạm vi giá trị, dạng dữ liệu unsigned int và unsigned long có cùng kích cỡ và phạm
vi giá trị. Cái này không luôn đúng, vì kích cỡ của các dạng số nguyên phụ thuộc vào dạng hệ thống bạn
đang sử dụng.
Sau này, bạn sẽ học sử dụng toán tử sizeof để quyết định dạng dữ liệu lớn như thế nào trên
máy tính của bạn.
Mỗi dạng dữ liệu trong bảng trên, ngoại trừ int có thể được viết trong dạng tóm tắt bằng cách bỏ đi từ int.
Lập trình viên cũng thường sử dụng tên dạng dữ liệu viết tắt.