Trước hết ta nhớ lại là CPU của máy tính chỉ nhận biết hay "hiểu" hai trạng thái Có-Không hay 1-0 mà thôi. Từ đây sinh ra khái niệm Bit, Byte, hai thuật ngữ chuyên ngành trong công nghệ.
Bit là gì?
Bit được viết tắt từ Binary digit ký hiệu là "b". Bit được biết đến là đơn vị nhỏ nhất được dùng để biểu thị thông tin của máy tính. Đây cũng là đơn vị nhỏ nhất trong việc lưu trữ thông tin trong hệ thống và lưu trữ dung lượng của các bộ nhớ như: ROM, RAM, ổ cứng, USB, thẻ nhớ…
Thông thường các bit sẽ được biểu diễn dưới dạng số nhị phân là 0 hoặc 1. Mỗi một bit ứng với một số (1 hoặc 0) và một bit chỉ có thể nhận diện được cũng như hiểu được 1 hoặc trong 2 trạng thái thông tin bật hoặc tắt, đúng hoặc sai hay có hoặc không.
Chuỗi bit là một chuỗi liên tiếp các bit (1 hoặc 0) được sử dụng để biểu diễn thông tin của một đối tượng trong máy tính. Trong ngôn ngữ lập trình, các loại dữ liệu như số, ký tự, hình ảnh, âm thanh và các thành phần khác đều được mô tả dưới dạng các dãy bit. Chẳng hạn, một ký tự chữ cái như 'a' có thể được biểu diễn bằng một chuỗi 8 bit, tương đương với 1 byte (ta sẽ nói bên dưới), với giá trị là 01100001.
Từ khái niệm Bit sẽ sinh ra khái niệm Byte.
Byte là gì?
Byte là một loại đơn vị được dùng để lưu trữ các dữ liệu trong bộ nhớ của máy tính và nó được ký hiệu là chữ B in hoa "B". Loại đơn vị này sẽ dùng để mô tả một chuỗi bit cố định, 1 Byte có 8 bit và sẽ biểu thị được 2^8=256 giá trị khác nhau của thông tin. Chính vì vậy với 1 Byte nó sẽ đủ để lưu trữ số có dấu trừ -128 đến 127 hoặc số nguyên không dấu từ 0 đến 255. Hoặc như ví dụ trên ta sẽ thấy các chữ cái a,b,c,d....mỗi chữ sẽ được biểu thị bằng 1 byte. Để thể hiện một từ chúng ta phải cần khoảng 10 byte. Và, để thể hiện một câu văn ngắn chúng ta phải cần xấp xỉ 100 byte.
Kiểu dữ liệu (Data type) là gì?
Ta có thể hiểu nôm na kiểu dữ liệu (data type) là cách để phân loại và mô tả cách dữ liệu được lưu trữ và xử lý trong ngôn ngữ lập trình. Hoặc nói cô đọng hơn, kiểu dữ liệu chính là phần xác định các giá trị mà một biến có thể nhận hay giá trị mà một hàm có thể trả về. Ví dụ biến a có kiểu dữ liệu số nguyên, biến b có kiểu dữ liệu số thực...hàm c sẽ trả về kiểu dữ liệu số nguyên, hàm d sẽ trả về kiểu dữ liệu chuỗi ký tự.
Nếu không qui định cụ thể, bạn có thể hình dung ra là không thể có một máy tính một hệ thống máy tính nào có thể chứa nổi chỉ vài dòng văn bản hay vài hình ảnh...Qui định kiểu dữ liệu rõ ràng sẽ giúp tiết kiệm bộ nhớ. Ví dụ khi lưu tuổi một người ta chỉ cần dùng kiểu char hoặc unsigned char, mất có 1 byte. Vừa tiết kiệm bộ nhớ nhưng vẫn đảm bảo có thể lưu tất cả các tuổi có thể xảy ra. Nhưng với trường hợp dữ liệu lớn hơn, như dân số trong một quốc gia thì lên tới con số hàng triệu. Do đó ta phải sử dụng loại dữ liệu khác như int
C++ hỗ trợ nhiều kiểu dữ liệu khác nhau và người lập trình có thể chọn kiểu dữ liệu phù hợp với nhu cầu của ứng dụng. Các kiểu dữ liệu chỉ định kích thước và loại giá trị sẽ được lưu trữ.
Các kiểu dữ liệu trong C++ chủ yếu được chia thành 3 loại:
1. Kiểu dữ liệu nguyên thủy: Các kiểu dữ liệu này là kiểu dữ liệu có sẵn hoặc được xác định trước và người dùng có thể sử dụng trực tiếp để khai báo biến. ví dụ: int, char, float, bool, v.v. Các kiểu dữ liệu nguyên thủy có sẵn trong C++ là:
Integer
Character
Boolean
Floating Point
Double Floating Point
Valueless or Void
Wide Character
2. Kiểu dữ liệu phái sinh: Các kiểu dữ liệu phái sinh có nguồn gốc từ các kiểu dữ liệu nguyên thủy hoặc tích hợp được gọi là Kiểu dữ liệu phái sinh. Có bốn loại cụ thể là:
Function-Hàm
Array-Mảng
Pointer-Con trỏ
Reference
3. Các kiểu dữ liệu trừu tượng hoặc do người dùng định nghĩa: Các kiểu dữ liệu trừu tượng hoặc do người dùng định nghĩa. Giống như định nghĩa một lớp trong C++ hoặc một cấu trúc. C++ cung cấp các kiểu dữ liệu do người dùng định nghĩa sau:
Class
Structure
Union
Enumeration
Typedef defined Datatype
Một số kiểu dữ liệu nguyên thủy:
Kiểu Dữ Liệu Số Nguyên
Bảng sau liệt kê các kiểu dữ liệu số nguyên phổ biến trong ngôn ngữ lập trình C++
Kiểu dữ liệu | Kích thước (byte) | Giá trị có thể lưu | Phạm vi giá trị có thể lưu |
short | 2 | Số nguyên | -32,768 -> 32,767 |
unsigned short | 2 | Số nguyên không âm | 0 -> 65,535 |
int | 4 | Số nguyên | -2,147,483,648 -> 2,147,483,647 |
unsigned int | 4 | Số nguyên không âm | 0 -> 4,294,967,295 |
long long | 8 | Số nguyên | -9223372036854775808 -> 9223372036854775807 |
unsigned long long | 8 | Số nguyên không âm | 0 -> 18446744073709551615 |
Kiểu Dữ Liệu Số Thực
Khi bạn muốn lưu kiểu dữ liệu có phần thập phân bạn cần sử dụng kiểu dữ liệu số thực, trong C++ có 3 kiểu dữ liệu lưu số thực gồm : float, double, long double
Khi sử dụng kiểu dữ liệu số thực bạn cần biết các kiểu dữ liệu này có thể lưu được bao nhiêu số sau dấu phảy thập phân để lựa chọn kiểu dữ liệu cho phù hợp với độ chính xác mong muốn của bài toán.
Kiểu dữ liệu | Kích thước (byte) | Độ chính xác |
float | 4 | 6 - 9 chữ số thập phân |
double | 8 | 15 - 18 chữ số thập phân |
long double | 16 | 33 - 36 chữ số thập phân |
Kiểu Dữ Liệu Ký Tự
Khi bạn cần lưu trữ một ký tự trong C++ thì bạn sử dụng kiểu dữ liệu char, thực tế char cũng được sử dụng để lưu số nguyên.
Tuy nhiên mỗi ký tự mà bạn thường sử dụng đều có mã ASCII tương ứng, thời điểm hiện tại bạn sẽ chưa biết mã ASCII là gì tuy nhiên bạn chỉ cần nhớ rằng char có thể lưu được số nguyên hoặc lưu được kí tự.
Các ký tự như : chữ cái, chữ số, kí tự đặc biệt... đều có thể lưu trữ bằng kiểu dữ liệu char
Kiểu dữ liệu | Kích thước (byte) | Giá trị có thể lưu | Phạm vi giá trị có thể lưu |
char | 1 | Số nguyên hoặc ký tự | -128 -> 127 |
unsigned char | 1 | Số nguyên không âm hoặc ký tự | 0 -> 255 |
Kiểu Đúng Sai
Kiểu đúng sai hay luận lý được sử dụng để lưu trữ giá trị đúng (true) hoặc sai (false)
Trong ngôn ngữ lập trình C++ thì kiểu bool được sử dụng để lưu các giá trị đúng sai.
Kiểu dữ liệu này có kích thước là 1 byte
Đây là một chương trình đơn giản để in ra kích thước vài dữ liệu nguyên thủy.
#include <iostream>
using namespace std;
int main()
{
cout << "Size of char : " << sizeof(char) << endl;
cout << "Size of int : " << sizeof(int) << endl;
cout << "Size of long : " << sizeof(long) << endl;
cout << "Size of float : " << sizeof(float) << endl;
cout << "Size of double : " << sizeof(double) << endl;
return 0;
}
Sử dụng IDE Online để chạy chương trình.
Các câu lệnh đều đơn giản:
- Sử dụng cout để in
- Sử dụng hàm sizeof() để lấy kích thước của từng kiểu dữ kiệu
- Sử dụng endl để xuống dòng
Không có nhận xét nào:
Đăng nhận xét