#
Các kiểu dữ liệu
Ở C++ và nhiều ngôn ngữ lập trình ta sẽ bắt gặp các kiểu dữ liệu được biểu diễn ở dạng nhị phân như sau:
#
Số nguyên
int
, short int
, long long
dùng để lưu số nguyên. Các kiểu dữ liệu này có thể lưu các số nguyên không dấu (lưu các số nguyên không âm), hoặc có dấu (có thể lưu các số nguyên âm).
Để lưu các số nguyên không dấu, ta viết thêm unsigned
ở đầu kiểu dữ liệu.
VD:
unsigned int ui;
unsigned long long lli;
unsigned short int si;
Khi lưu các số nguyên có dấu ta không cần viết signed
ở đầu kiểu dữ liệu.
Trong C++, phép %
dùng để lấy phần dư của một số. Khi dùng phép %
với số âm thì kết quả sẽ là \(0\) hoặc là một số âm. Nếu tìm modulo của một số âm bằng phép %
thì ta thực hiện: ((a % b) + b) % b
.
#
Số thực
float
, double
dùng để lưu các số thực. 2 cách lưu trữ số này chỉ lưu các số thập phân chính xác một phần: float
có thể lưu chính xác đến khoảng 7 số sau dấu chấm phẩn, double
gấp đôi: 14 đến 15 số.
Ta không nên so sánh 2 số thực bằng kí tự ==
. Nếu ta chạy:
if(0.1 + 0.2 == 0.3){
cout << "True";
} else cout << "False";
Thì nó sẽ in False
thay vì True
.
Các bài tập yêu cầu in số thực sẽ chấp nhận kết quả chương trình của bạn nếu chệnh lệnh của đáp án của bạn và đáp án của bài nằm trong khoảng yêu cầu ví dụ như 109.
- Nếu output là
x
và đáp án của test lày
thì chênh lênh sẽ là|x-y|
. Các biến số thực vẫn có thể lưu chính xác nếu nó được yêu cầu lưu các số nguyên.
#
Boolean
bool
dùng để lưu 2 giá trị True/False (1/0).
Bool lại dùng đến 8 bit để lưu true/false trong khi có thể dùng 1 bit để làm điều tương tự. Ta có thể dùng bitset
để có thể tối ưu bộ nhớ.
#
Kí tự
char
lưu kí tự theo bộ mã ASCII.
Ta có thể chuyển từ kí tự sang số bằng cách dùng câu lệnh int([kí_tự])
, hoặc chuyển một số sang một kí tự bằng char([mã số])
.
Mã số của các kí tự quen thuộc trong ASCII:
- Mã số của các kí tự từ
1
đến10
là từ 48 đến 57. - Mã số của các kí tự từ
a
đếnz
là từ 97 đến 122. - Mã số của các kí tự từ
A
đếnZ
là từ 65 đến 90. - Ta có thể chuyển từ kí tự in thường sang in hoa và ngược lại bằng cách trừ hoặc cộng 32.
#
Xâu kí tự
string
là một chuối kí tự chứa các giá trị char
.