Post on 03-Feb-2023
4
KIỂU DỮ LIỆU SỐ NGUYÊN
2. Số nguyên có dấuỞ dạng biểu diễn số âm dùng bit dấu và trị tuyệt đối, bit cótrọng số cao nhất sẽ quy định dấu cho số có trị tuyệt đối ngay sau, nếu bằng 0 số dương, 1 âm.Dạng bù 1 sẽ biểu diễn số âm bằng việc đảo các trạng thái bit của số dương tương ứng, đảo từ 1 qua 0, và ngược lại.Dạng bù 2 (sẽ được xét cụ thể ở mục dưới) sẽ biểu diễn số âm bằng dạng bù 1 của nó công thêm 1.
Trong ba cách, 2 cách đầu đơn giản về tư duy, nhưng không có lợi cho việc thực hiện phép toán hoặc mất trị trong tầm (2 trị 0, và -0, thực ra là 1 trị).
CB
GD
: TS Hồ
PhạmH
uyÁ
nh
8
PHÉP TOÁN TRÊN BIT – PHÉP TOÁN SỐHỌC
1. Cộng và trừ:Các phép toán số học trên các số bù 2 hoàn toàn tương tự như trên các số thập phân mà độc giả đã biết.Phép cộng sẽ thực hiện từ phải qua trái, từng ký số, mỗi lần như vậy ta có một ký số tổng và một ký số nhớ.
CB
GD
: TS Hồ
PhạmH
uyÁ
nh
11
PHÉP TOÁN TRÊN BIT – PHÉP TOÁN SỐHỌC
2. Mở rộng dấu:Số 5 (số dương) dạng bù 2 000101 (6 bit)
Thanh ghi dài 16 bit mở rộng chiều dài bit bằng cáchthêm vào các bit 0 trước 0000 0000 0000 0101Do vậy với số dương thêm bit 0 phía trước
Số 2 (số âm) dạng bù 2 11110 (5 bit)Nếu thêm số 0 trước sai kết quả. VD: 00011110 số30Do vậy với số âm thêm bit dấu 1 phía trước
CB
GD
: TS Hồ
PhạmH
uyÁ
nh
12
PHÉP TOÁN TRÊN BIT – PHÉP TOÁN SỐHỌC
3. Tràn số:Chiếu dài bit có giới hạn, ví dụ với 5 bit, khoảng số là -16
15. Do vậy 2 phép tính sau dẫn đến kết quả sai:9 (bù 2: 01001) + 11 (bù 2: 01011) = -12 (10100)-12 (bù 2: 10100) – 6 (bù 2: 11010) = 14 (01110)Để tránh tràn số phải đổi sang kiểu dữ liệu lớn hơn (có
chiều dài chuỗi bit lớn hơn).
CB
GD
: TS Hồ
PhạmH
uyÁ
nh
13
PHÉP TOÁN TRÊN BIT – PHÉP TOÁN LUẬN LÝ
1 trạng thái đúng.0 trạng thái sai. C
BG
D: TS H
ồPhạm
Huy
Ánh
18
KiỂU DỮ LiỆU DẤU CHẤM ĐỘNG (FLOATING POINT DATA TYPE)
Số rất nhỏ hoặc rất lớn: Khi biểu diễn số thực dấuchấm tĩnh
Biểu diễn số tốn rất nhiều bộ nhớ
Không biểu diễn được
CB
GD
: TS Hồ
PhạmH
uyÁ
nh
21
KiỂU DỮ LiỆU DẤU CHẤM ĐỘNG (FLOATING POINT DATA TYPE)
Trường hợp đặc biệt:
Bit mũ: 00000000 số mũ là -126 (tức là 2-126)
Bit mũ: 11111111
•Phần trị bằng 0 số là dương vô cực hay âm vô cực tùyvào bit dấu
•Phần trị khác 0 không phải là số: NaN (Not a Number) không quan tâm tới dấu
CB
GD
: TS Hồ
PhạmH
uyÁ
nh