Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 1: Ôn tại các kiến thức cơ bản về máy tính cung cấp cho người học các kiến thức: Các hệ đếm, các khái niệm cơ bản, lịch sử phát triển của máy tính, các thành phần cơ bản của máy tính,... Mời các bạn cùng tham khảo.
CHƯƠNG CÁC DỮ LIỆU VÀ THAO TÁC CHƯƠNG CÁC KIỂU DỮ LIỆU VÀ THAO TÁC KIỂU DỮ LIỆU SỐ NGUYÊN SỐ NGUYÊN BÙ PHÉP TOÁN SỐ HỌC TRÊN BIT PHÉP TOÁN LUẬN LÝ TRÊN BIT KIỂU DỮ LIỆU DẤU CHẤM ĐỘNG CuuDuongThanCong.com https://fb.com/tailieudientucntt CHƯƠNG CÁC DỮ LIỆU VÀ THAO TÁC 2.1 KIỂU DỮ LIỆU SỐ NGUYÊN 2.1.1 Số nguyên không dấu (unsigned integer) Dùng để biểu diễn số lần lặp lại tác vụ định, hay địa ô nhớ Ví dụ: 102, 101101B CuuDuongThanCong.com https://fb.com/tailieudientucntt CHƯƠNG CÁC DỮ LIỆU VÀ THAO TÁC 2.1 KIỂU DỮ LIỆU SỐ NGUYÊN 2.1.2 Số nguyên có dấu (signed integer) • Dạng biểu diễn số âm dùng bit dấu trị tuyệt đối, bit có trọng số cao quy định dấu cho số có trị tuyệt đối sau, số dương, âm • Dạng bù biểu diễn số âm việc đảo trạng thái bit số dương tương ứng, đảo từ qua 0, ngược lại • Dạng bù biểu diễn số âm dạng bù cơng thêm CuuDuongThanCong.com https://fb.com/tailieudientucntt Dạng biển diễn Trị biểu diễn Trị tuyệt đối có dấu Bù Bù 00000 0 00001 1 00010 2 00011 3 00100 4 00101 5 00110 6 00111 7 01000 8 01001 9 01010 10 10 10 01011 11 11 11 01100 12 12 12 01101 13 13 13 01110 14 14 14 01111 15 15 15 10000 -0 -15 -16 10001 -1 -14 -15 10010 -2 -13 -14 10011 -3 -12 -13 10100 -4 -11 -12 10101 -5 -10 -11 10110 -6 -9 -10 10111 -7 -8 -9 11000 -8 -7 -8 11001 -9 -6 -7 11010 -10 -5 -6 11011 -11 -4 -5 11100 -12 -3 -4 11101 -13 -2 -3 11110 -14 -1 -2 11111 -15 -0 -1 CuuDuongThanCong.com https://fb.com/tailieudientucntt CHƯƠNG CÁC DỮ LIỆU VÀ THAO TÁC 2.2 SỐ NGUYÊN BÙ Có hai bước quy luật tạo số bù số: - Lật ngược trạng thái bit biểu diễn từ qua 0, từ qua mẫu, gọi phép bù - Cộng vào mẫu kết bước 1, để có mẫu kết sau cuøng CuuDuongThanCong.com https://fb.com/tailieudientucntt CHƯƠNG CÁC DỮ LIỆU VÀ THAO TÁC 2.2 SỐ NGUYÊN BÙ Thí dụ 2.1: Tìm dạng bù cho số -12 Mẫu nhị phân trị tuyệt đối toán hạng 12 01100 Ta thực hai bước sau: B1 Tìm bù 01100: 10011 B2 Cộng vào dạng bù 1: 10100 01100 + 10100 100000 Kết CuuDuongThanCong.com https://fb.com/tailieudientucntt CHƯƠNG CÁC DỮ LIỆU VÀ THAO TÁC 2.3 PHÉP TOÁN TRÊN BIT – PHÉP TOÁN SỐ HỌC 2.3.1 Cộng trừ Ví dụ 2.2: Tính biểu thức 11+3.Ta có: Trị thập phân 11 biểu diễn dạng Trị thập phân biểu diễn dạng Tổng, có trị 14, CuuDuongThanCong.com 01011 00011 01110 https://fb.com/tailieudientucntt CHƯƠNG CÁC DỮ LIỆU VÀ THAO TÁC 2.3 PHEÙP TOÁN TRÊN BIT – PHÉP TOÁN SỐ HỌC 2.3.1 Cộng trừ Thí dụ 2.3: Mô thực phép trừ thao tác cộng ALU, tính biểu thức: 12 – 19 Trước tiên, CPU phân tích để tính biểu thức dạng: 12 + (-19), sau tính bù 19 (010011) để có -19 (101101) Cộng 12, (001100), với -19 (101101): 001100 + 101101 111001 CuuDuongThanCong.com https://fb.com/tailieudientucntt CHƯƠNG CÁC DỮ LIỆU VÀ THAO TÁC 2.3 PHÉP TOÁN TRÊN BIT – PHÉP TOÁN SỐ HỌC 2.3.1 Cộng trừ Thí dụ 2.4: Cộng số với (x + x), tính + Giả sử ta xét mẫu có chiều dài bit Mẫu nhị phân bit 00110, tức dạng khai triển 0.24 + 0.23 + 1.22 + 1.21 + 0.20 Khi ta thực + 6, hay 2.6, biểu thức khai triển 0.25 + 0.24 + 1.23 + 1.22 + 0.21 Ta coù kết quả: 01100, tức dịch toán hạng ban đầu bit sang trái vị trí CuuDuongThanCong.com https://fb.com/tailieudientucntt CHƯƠNG CÁC DỮ LIỆU VÀ THAO TÁC 2.3 PHÉP TOÁN TRÊN BIT – PHÉP TOÁN SỐ HỌC 2.3.2 Mở rộng dấu Thao tác mở rộng thêm bit dấu (0 với số dương với số âm) vào phía trước dạng bù không làm thay đổi giá trị số ban đầu Thao tác gọi thao tác mở rộng dấu (Sign-EXTension), thường viết tắt SEXT Ví dụ: 000101 -> 0000000000000101 100101 -> 1111111111100101 CuuDuongThanCong.com https://fb.com/tailieudientucntt CHƯƠNG CÁC DỮ LIỆU VÀ THAO TÁC 2.4 PHÉP TOÁN TRÊN BIT – PHÉP TOÁN LUẬN LÝ 2.4.3 Phép toán NOT NOT hàm luận lý đơn toán hạng, cần toán hạng nhập Toán hạng gọi toán hạng bù, thực thao tác lật ngược trạng thái luận lý từ qua 0, từ qua CuuDuongThanCong.com https://fb.com/tailieudientucntt CHƯƠNG CÁC DỮ LIỆU VÀ THAO TÁC 2.4 PHÉP TOÁN TRÊN BIT – PHÉP TOÁN LUẬN LÝ 2.4.3 Phép toán NOT CuuDuongThanCong.com https://fb.com/tailieudientucntt CHƯƠNG CÁC DỮ LIỆU VÀ THAO TÁC 2.4 PHÉP TOÁN TRÊN BIT – PHÉP TOÁN LUẬN LÝ 2.4.3 Phép toán NOT a: 0100 0001 c = NOT a: 10111110 CuuDuongThanCong.com https://fb.com/tailieudientucntt CHƯƠNG CÁC DỮ LIỆU VÀ THAO TÁC 2.4 PHEÙP TOÁN TRÊN BIT – PHÉP TOÁN LUẬN LÝ 2.4.4 Phép toán Exclusive-OR (EX-OR) Phép toán gọi ngắn gọn XOR Đây toán tử hai toán hạng Đầu XOR hai đầu vào khác CuuDuongThanCong.com https://fb.com/tailieudientucntt CHƯƠNG CÁC DỮ LIỆU VÀ THAO TÁC 2.4 PHÉP TOÁN TRÊN BIT – PHÉP TOÁN LUẬN LÝ 2.4.4 Phép toán Exclusive-OR (EX-OR) CuuDuongThanCong.com https://fb.com/tailieudientucntt CHƯƠNG CÁC DỮ LIỆU VÀ THAO TÁC 2.4 PHÉP TOÁN TRÊN BIT – PHÉP TOÁN LUẬN LÝ 2.4.4 Phép toán Exclusive-OR (EX-OR) Ví dụ 2.9: Nếu c kết XOR a b, với a = 0011 1101 b = 0100 0001, c bao nhieâu ? a : 0011 1101 b : 0100 0001 c : 0111 1100 CuuDuongThanCong.com https://fb.com/tailieudientucntt CHƯƠNG CÁC DỮ LIỆU VÀ THAO TÁC 2.5 KIỂU DỮ LIỆU DẤU CHẤM ĐỘNG (Floating point data type) Kiểu liệu dấu chấm động cách giải cho vấn đề biểu diễn số thập phân thay dùng dấu chấm tónh Các kiến trúc tập lệnh (ISA) có kiểu liệu dấu chấm động theo định dạng chuẩn IEEE 754 CuuDuongThanCong.com https://fb.com/tailieudientucntt CHƯƠNG CÁC DỮ LIỆU VÀ THAO TÁC 2.5 KIỂU DỮ LIỆU DẤU CHẤM ĐỘNG (Floating point data type) Một chúng kiểu float, chiều dài 32 bit, có cấu trúc sau: bit cho dấu (dương hay âm) bit cho tầm (vùng số mũ-exponent) 23 bit cho độ xác (fraction) N = (-1)S x 1.fraction x 2exponent-127, ≤ exponent ≤ 254 CuuDuongThanCong.com https://fb.com/tailieudientucntt CHƯƠNG CÁC DỮ LIỆU VÀ THAO TÁC 2.5 KIỂU DỮ LIỆU DẤU CHẤM ĐỘNG (Floating point data type) Phần mũ dài bit nhị phân, biểu diễn 256 trị không dấu, ta sử dụng 254 trị mà Vùng mũ chứa 0000 0000 (tức 0), hay 1111 1111 (tức 255) cho ý nghóa đặc biệt khác mà ta xét sau CuuDuongThanCong.com https://fb.com/tailieudientucntt CHƯƠNG CÁC DỮ LIỆU VÀ THAO TÁC 2.5 KIỂU DỮ LIỆU DẤU CHẤM ĐỘNG (Floating point data type) Ví dụ 2.10: Hãy biểu diễn số - dạng kiểu liệu dấu chấm động Ví dụ 2.11: Hãy tìm trị cho dạng biểu diễn thuộc kiểu dấu chấm động sau: 0111101100000000000000000000000 CuuDuongThanCong.com https://fb.com/tailieudientucntt CHƯƠNG CÁC DỮ LIỆU VÀ THAO TÁC 2.5 KIỂU DỮ LIỆU DẤU CHẤM ĐỘNG (Floating point data type) Nếu phần mũ chứa 00000000 số mũ xem la ø -126, phần trị bắt đầu bit bên trái dấu chấm nhị phân, tới dấu chấm nhị phân, theo sau 23 bit phần trị bình thường, cụ thể (-1)S x 0.fraction x 2-126 CuuDuongThanCong.com https://fb.com/tailieudientucntt CHƯƠNG CÁC DỮ LIỆU VÀ THAO TÁC 2.5 KIỂU DỮ LIỆU DẤU CHẤM ĐỘNG (Floating point data type) Ví dụ, dạng biểu diễn dấu chấm động 00000000 00001000000000000000000 có bit dấu 0, nên số dương, tám bit kế 0, nên số mũ -126, 23 bit cuối tạo dạng số 0.00001000000000000000000, tức 2-5 Như vậy, số biểu diễn 2-5 2-126, tức 2-131 CuuDuongThanCong.com https://fb.com/tailieudientucntt CHƯƠNG CÁC DỮ LIỆU VÀ THAO TÁC 2.5 KIỂU DỮ LIỆU DẤU CHẤM ĐỘNG (Floating point data type) Thí dụ 2.12: Kiểm chứng trị kiểu dấu chấm động mẫu sau: 10000011 00101000000000000000000 laø 1.00101x 24 = 18.5 10000010 00101000000000000000000 laø -1 x 1.00101x 23 = -9.25 11111110 11111111111111111111111 laø 1.111…11 x 2127 ~ 2128 00000000 00000000000000000000001 laø -2-149 00000000 00000000000000000000000 laø 0+ 00000000 00000000000000000000000 laø 0CuuDuongThanCong.com https://fb.com/tailieudientucntt CHƯƠNG CÁC DỮ LIỆU VÀ THAO TÁC 2.5 KIỂU DỮ LIỆU DẤU CHẤM ĐỘNG (Floating point data type) Nếu phần mũ chứa 11111111 ta có hai khả xảy ra: - Nếu phần trị 0, số dương vô cực (+) hay âm vô cực (-) tùy vào bit dấu -Nếu phần trị khác 0, lúc việc biểu diễn số dấu chấm động không số (Not a Number - NaN), không quan tâm tới bit dấu Dạng NaN báo hiệu thao tác không hợp lệ nhân zero (0) với vô cực () CuuDuongThanCong.com https://fb.com/tailieudientucntt CHƯƠNG CÁC DỮ LIỆU VÀ THAO TÁC 2.5 KIỂU DỮ LIỆU DẤU CHẤM ĐỘNG (Floating point data type) Tương tự, kiểu double có chiều dài 64 bit theo định dạng sau: N = (-1)S x 1.fraction x 2exponent-1023, ≤ exponent ≤ 2046 CuuDuongThanCong.com https://fb.com/tailieudientucntt ... 10 010 -2 -1 3 -1 4 10 011 -3 -1 2 -1 3 10 100 -4 -1 1 -1 2 10 1 01 -5 -1 0 -1 1 10 110 -6 -9 -1 0 10 111 -7 -8 -9 11 000 -8 -7 -8 11 0 01 -9 -6 -7 11 010 -1 0 -5 -6 11 011 -1 1 -4 -5 11 100 -1 2 -3 -4 11 1 01 -1 3 -2 -3 ... 000 01 1 00 010 2 00 011 3 0 010 0 4 0 010 1 5 0 011 0 6 0 011 1 7 010 00 8 010 01 9 010 10 10 10 10 010 11 11 11 11 011 00 12 12 12 011 01 13 13 13 011 10 14 14 14 011 11 15 15 15 10 000 -0 -1 5 -1 6 10 0 01 -1 -1 4 -1 5 ... 1. 0 010 1x 24 = 18 .5 10 000 010 0 010 1000000000000000000 laø -1 x 1. 0 010 1x 23 = -9 .25 11 111 110 11 111 111 111 111 111 111 111 laø 1. 111 ? ?11 x 212 7 ~ 212 8 00000000 000000000000000000000 01 laø -2 -1 4 9 00000000