Academia.eduAcademia.edu
Chương II 1 CBGD: TS Hồ Phạm Huy Ánh CÁC KIỂU DỮ LIỆU THAO TÁC KIỂU DỮ LIỆU S NGUYÊN 1. Số nguyên không dấu 2. Số nguyên có dấu CBGD: TS Hồ Phạm Huy Ánh 2 KIỂU DỮ LIỆU S NGUYÊN 1. S nguyên không d u CBGD: TS Hồ Phạm Huy Ánh 3 KIỂU DỮ LIỆU S NGUYÊN 2. S nguyên có d u CBGD: TS Hồ Phạm Huy Ánh 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ị). 4 S NGUYÊN BÙ 2 5 CBGD: TS Hồ Phạm Huy Ánh S NGUYÊN BÙ 2 6 CBGD: TS Hồ Phạm Huy Ánh S NGUYÊN BÙ 2 7 CBGD: TS Hồ Phạm Huy Ánh PHÉP TOÁN TRÊN BIT – PHÉP TOÁN S HỌC CBGD: TS Hồ Phạm Huy Ánh 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ớ. 8 PHÉP TOÁN TRÊN BIT – PHÉP TOÁN S HỌC 1. C ng và trừ: CBGD: TS Hồ Phạm Huy Ánh 9 PHÉP TOÁN TRÊN BIT – PHÉP TOÁN S HỌC 1. C ng và trừ: CBGD: TS Hồ Phạm Huy Ánh 10 PHÉP TOÁN TRÊN BIT – PHÉP TOÁN S HỌC 2. Mở r ng d u: CBGD: TS Hồ Phạm Huy Ánh 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ách thêm vào các bit 0 trước å 0000 0000 0000 0101 Do 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ố 30 Do v y với s âm å thêm bit d u 1 phía trước 11 PHÉP TOÁN TRÊN BIT – PHÉP TOÁN S HỌC 3. Tràn s : CBGD: TS Hồ Phạm Huy Ánh 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). 12 PHÉP TOÁN TRÊN BIT – PHÉP TOÁN LU N LÝ CBGD: TS Hồ Phạm Huy Ánh 1 å trạng thái đúng. 0 å trạng thái sai. 13 PHÉP TOÁN TRÊN BIT – PHÉP TOÁN LU N LÝ 1. Phép toán AND: CBGD: TS Hồ Phạm Huy Ánh 14 PHÉP TOÁN TRÊN BIT – PHÉP TOÁN LU N LÝ 2. Phép toán OR: CBGD: TS Hồ Phạm Huy Ánh 15 PHÉP TOÁN TRÊN BIT – PHÉP TOÁN LU N LÝ 3. Phép toán NOT: CBGD: TS Hồ Phạm Huy Ánh 16 PHÉP TOÁN TRÊN BIT – PHÉP TOÁN LU N LÝ 4. Phép toán EX-OR: CBGD: TS Hồ Phạm Huy Ánh 17 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ấu chấm tĩnh å Không biểu diễn được CBGD: TS Hồ Phạm Huy Ánh å Biểu diễn số tốn rất nhiều bộ nhớ 18 KiỂU DỮ LiỆU D U CH M Đ NG (FLOATING POINT DATA TYPE) CBGD: TS Hồ Phạm Huy Ánh 19 KiỂU DỮ LiỆU D U CH M Đ NG (FLOATING POINT DATA TYPE) CBGD: TS Hồ Phạm Huy Ánh 20 KiỂU DỮ LiỆU D U CH M Đ NG (FLOATING POINT DATA TYPE) Trư ng hợp đặc biệt: XBit mũ: 11111111 •Phần trị bằng 0 å số là dương vô cực hay âm vô cực tùy và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 CBGD: TS Hồ Phạm Huy Ánh XBit mũ: 00000000 å số mũ là -126 (tức là 2-126) 21 KiỂU DỮ LiỆU D U CH M Đ NG (FLOATING POINT DATA TYPE) CBGD: TS Hồ Phạm Huy Ánh 22