Học C++/Kiểu dữ liệu

Có 4 kiểu dữ liệu cơ sở:

  1. Kiểu số nguyên
  2. Kiểu số thực
  3. Kiểu luận lý (logic)
  4. Kiểu ký tự

Kiểu số nguyênSửa đổi

Kiểu Độ rộng bit Dãy giá trị
char 1 byte –128 tới 127
unsigned char 1 byte 0 tới 255
int 4 byte –231 tới 231 – 1
unsigned int 4 byte 0 tới 232 – 1
short int 2 byte –215 tới 215 – 1
unsigned short int 2 byte 0 tới 216 – 1
long int 4 byte –231 tới –231 – 1
unsigned long int 4 byte 0 tới 232 – 1

Kiểu số thựcSửa đổi

Kiểu Độ rộng bit Dãy giá trị
float 4 byte 1.401298 x 10-45 tới 3.40282 x 1038
double 8 byte 4.94066 x 10-324 tới 1.79769 x 10308
long double 8 byte 4.94066 x 10-324 tới 1.79769 x 10308

Kiểu luận lýSửa đổi

Đây là kiểu nguyên đặc biệt, mỗi biểu thức luận lý khác 0 là đúng (true), bằng 0 là sai (false). Một biểu thức luận lý luôn trả về một trong hai kết quả là 0 (sai) hoặc 1 (đúng). Để lưu giá trị của một biểu thức luận lý, người ta có thể khai báo biến kiểu bool.

Các phép toán trong biểu thức luận lý:

  • Phép and (và, ký hiệu &&): A && B đúng khi cả A và B đều đúng.
  • Phép or (hoặc, ký hiệu ||): A || B sai khi cả A và B đều sai.
  • Phép not (phủ định, ký hiệu !): !A đúng khi A sai.

Các phép so sánh trong biểu thức luận lý:

  • Phép so sánh bằng ==
  • Phép so sánh khác !=
  • Phép so sánh lớn (>), bé (<), lớn hơn bằng (>=), bé hơn bằng (<=)

Kiểu ký tựSửa đổi

Ngôn ngữ C/C++ đều cung cấp 2 kiểu cho việc lưu trữ các ký tự:

  • Để lưu ký tự 1 byte (8 bit) dựa trên bảng mã ASCII, ta dùng biến kiểu char hoặc unsigned char
  • Để lưu ký tự UTF-16 (ký tự Unicode dạng 16 bit, được lưu dựa trên bảng mã quốc tế), ta dùng biến kiểu wchar_t, chiếm 2 byte bộ nhớ.

Tìm kích cỡ của các kiểu dữ liệuSửa đổi

Đoạn code sau sẽ đưa ra kích cỡ chính xác của các kiểu dữ liệu đa dạng trên máy tính:

#include <iostream>
using namespace std;

int main()
{
   cout << "Kich co cua char la: " << sizeof(char) << endl;
   cout << "Kich co cua int la: " << sizeof(int) << endl;
   cout << "Kich co cua short int la: " << sizeof(short int) << endl;
   cout << "Kich co cua long int la: " << sizeof(long int) << endl;
   cout << "Kich co cua float la: " << sizeof(float) << endl;
   cout << "Kich co cua double la: " << sizeof(double) << endl;
   cout << "Kich co cua wchar_t la: " << sizeof(wchar_t) << endl;
   return 0;
}