Data types – Các kiểu dữ liệu
Là một khái niệm không
thể thiếu trong bất cứ ngôn ngữ lập trình nào, sự ra đời của từ khóa “data type”
đã tiết kiệm cho người viết code một khoảng thời gian và bộ nhớ không nhỏ. Dù vậy,
so với các ngôn ngữ khác, data type trong lập trình C mang theo một vài giới hạn
nhất định về độ lớn và sự đa dạng.
I. Vì sao phải phân ra các kiểu dữ liệu
-
Nhằm mục đích tiết kiệm bộ nhớ và đơn giản hóa 1
số câu lệnh như lệnh xác nhận Nếu … Thì …, người ta phân loại các kiểu dữ liệu
khác nhau.
Ví dụ:
Nếu lưu số 52031 dưới dạng ký tự (char),
máy tính sẽ phải bỏ ra 5 bytes cho từng ký tự số để lưu dữ liệu đó trong bộ nhớ.
Nhưng nếu lưu dưới dạng số nguyên dương, máy tính chỉ cần bỏ ra 2 bytes dữ liệu
(unsigned int).
Làm thế nào để tiết kiệm 1 byte ? nguồn www.jegsworks.com
II. Các kiểu dữ liệu trong lập trình C
Các kiểu dữ liệu là những tập hợp gồm có các giá trị tương đương nhau. Ví dụ tập hợp 256 số nguyên dương {0,1,2,.....255} được gọi là kiểu dữ liệu unsigned short int.
Trong lập trình C, người ta chia ra làm 5 kiểu dữ liệu chính
:
1.
char
- dùng cho các ký tự và chuỗi ký tự. VD: “k”, “xin chao”, “sjs9825mga92&@%”
-
Sử dụng một byte cho mỗi ký tự trong biến. Mỗi
byte có khả năng diễn đạt được 256 ký tự khác nhau bao gồm cả chữ và số.
2.
int -
dùng cho các số nguyên. Ví dụ: 2512, -251262
-
Sử dụng 2 bytes cho mỗi biến. Mỗi 2 bytes có khả
năng diễn đạt 2^16 = 65536 số nguyên khác nhau
3.
float-
dùng cho các số thực
-
Sử dụng 4 bytes cho mỗi biến. Mỗi biến float có
khả năng diễn đạt được 6 chữ số thập phân
4.
double-
diễn tả chính xác hơn float với 10 chữ số thập phân
-
Sử dụng 8 bytes cho mỗi biến
5.
void
– Là một tập hợp mang rỗng giá trị theo nghĩa đen của nó. Còn nó dùng để làm gì
thì những bài sau xin phép trả lời
·
Sau này các ngôn ngữ C kiểu mới còn có thêm kiểu
dữ liệu boolean ( giá trị đúng hoặc
sai), complex (số phức ) và 1 số loại
khác. Những biến mang giá trị kiểu này thường được code thủ công trong C cơ bản.
III. Các loại bổ trợ - Modifiers
Mặc định trong C, 1 biến kiểu int biểu diễn được con số từ -32768 đến 32.767 (216 = 65536
số). Nhưng khi chúng ta có nhu cầu sử dụng con số lớn hơn, ví dụ như 70000, thì
sự ra đời của modifiers là cần thiết.
Modifiers thường dùng để chỉnh sửa khoảng giá trị của 1 kiểu
dữ liệu như int, float cho nhỏ xuống hay nhiều lên để
phù hợp với nhu cầu người dùng. Ví dụ như kiểu int chỉ chứa 65536, thì long
int chứa được 4 bytes, tương đương với 2 32 = 4294976296 số.
Trong C có 4 loại bổ trợ cơ bản như sau:
1.
Signed :
Bổ trợ mặc định cho các kiểu dữ liệu số. Thường dùng để thay đổi dữ liệu kiểu
ký tự
2.
Unsigned:
Bổ trợ mặc định cho kiểu dữ liệu ký tự. Bổ trợ này nếu dùng cho các kiểu dữ
liệu số thì tăng gấp đôi lượng giá trị dương và loại bỏ giá trị âm. Ví dụ : unsigned int chứa được các giá trị từ 0 đến 65536.
3.
Short:
Giảm lượng bytes chứa giá trị xuống còn 1 nửa. Ví dụ: short int chỉ cho 1 byte chứa
từ -128 đến 127
4.
Long:
Tăng gấp đôi lượng bytes chứa giá trị. Ví dụ: long int cho 4 bytes để chứa giá trị số nguyên.
·
Lưu ý: Để
tiện dùng, long và short được sử dụng mặc định cho long int, short int. Trong C chỉ dùng
được 1 modifiers cho 1 biến. Ngôn ngữ C99 cho phép sử dụng long long int.
IV. Một số bài tập làm quen
1. Write a program that accepts a number and
square the
number. To do this:
a. Accept the number.
b. Multiply the number with itself and display the square
Kết quả:
Comment: Chúng ta có thể thấy biến square và num đã được định dạng float, qua đó khi hiển thị, cả 2 biến sẽ có thêm 6 số sau dấu phẩy mặc dù mình chỉ nhập số 15.
2. Write a C program that accepts the salary
the same on the screen as output.
Kết quả:
Comment: Vì số tuổi của phần lớn người bình thường không quá 120 nên việc chọn kiểu dữ liệu short sẽ tiết kiệm 1 byte bộ nhớ ( tính theo hiệu suất là giảm 50% đó )
Bên cạnh đó unsigned long int là lựa chọn hợp lý khi lương bình thường được tính theo số nguyên dương.
V. Kết luận
Sau bài viết này, mình kết luận được là data type luôn đi chung với biến. Sử dụng data type một cách nhuần nhuyễn sẽ tăng hiệu suất làm việc theo thời gian và bộ nhớ của máy tính, đặc biệt là với những bài tập tính toán khổng lồ sau này.
Không có nhận xét nào:
Đăng nhận xét