Bài giảng Kiến trúc máy tính - Chương 3: Tổ chức thông tin được biên soạn nhằm trang bị cho các bạn những kiến thức về các hệ thống số, mã hoá và lưu trữ dữ liệu trong máy tính, biểu diễn số nguyên, thực hiện các phép toán số học với số nguyên.
Kiến trúc máy tính Chương 3: Tổ chức thơng tin BIỂU DIỄN DỮ LIỆU VÀ SỐ HỌC MÁY TÍNH 3.1 Các hệ thống số 3.2 Mã hoá lưu trữ liệu máy tính 3.3 Biểu diễn số nguyên 3.4 Thực phép toán số học với số nguyên 3.5 Số dấu chấm động 3.6 Biểu diễn ký tự 3.1 Các hệ thống số Hệ thập phân (Decimal System) Hệ nhị phân (Binary System) Máy tính sử dụng Hệ thập lục phân (Hexadecimal System) Con người sử dụng Dùng để viết gọn số nhị phân Hệ bát phân (Octal System) Hệ thập phân Hệ thập phân Cơ số 10 10 chữ số: 0, 1, 2, 3, 4, 5, 6, 7, 8, Dùng n chữ số thập phân biểu diễn 10n giá trị khác nhau: 00 000 = 99 999 = 10n - Hệ thập phân 472.38 = 4x102 + 7x101 + 2x100 + 3x10-1 + 8x10-2 Các chữ số phần nguyên: 472 : 10 = 47 dư 47 : 10 = dư : 10 = dư Các chữ số phần lẻ: 0.38 x 10 = 3.8 phần nguyên = 0.8 x 10 = 8.0 phần nguyên = Hệ nhị phân Hệ nhị phân Cơ số Chữ số nhị phân gọi bit (binary digit) chữ số nhị phân: Bit đơn vị thông tin nhỏ Dùng n bit biểu diễn 2n giá trị khác nhau: 00 000 = 11 111 = 2n-1 Hệ nhị phân Có số nhị phân A sau: A = anan-1 a1a0.a-1 a-m Giá trị A tính sau: A = an2n + an-12n-1 + + a020 + a-12-1 + + a-m2-m Ví dụ: 1101001.1 1(2) 6543210-1-2-3-4 = 26 + 25 + 23 + 20 + 2-1 + 2-3 + 2-4 = 64 + 32 + + + 0.5 + 0.125 + 0.0625 = 105.6875(10) Hệ bát phân Biểu diễn số nguyên có dấu Biểu diễn số nguyên có dấu mã bù hai Dùng n bit biểu diễn số nguyên có dấu A: an-1an-2…a2a1a0 Qui ước: chọn bit có trọng số cao (MSB) làm bit dấu Với A số dương: bit an-1 = 0, bit lại biểu diễn độ lớn số không dấu Với A số âm: biểu diễn số bù hai số dương tương ứng, bit an-1 = Biểu diễn số nguyên có dấu Dạng tổng quát số nguyên A: an-1an-2…a2a1a0 Giá trị A xác định sau: n2 A an 1 n 1 i i 0 Dải biểu diễn: -2n-1 ÷ 2n-1-1 Số bit có dấu có giá trị : -128 ÷ +127 Số 16 bit có dấu có giá trị : -32768 ÷ +32767 Biểu diễn số ngun có dấu n = bit Biểu diễn giá trị từ -128 đến +127 0000 0000 = 0000 0001 = +1 0000 0010 = +2 Chú ý: 0000 0011 = +3 +127 + = -128 … -128 - = +127 0111 1111 = +127 tràn xảy 1000 0000 = - 128 1000 0001 = - 127 … 1111 1110 = -2 1111 1111 = -1 Biểu diễn số nguyên có dấu Chuyển đổi từ byte thành word Đối với số dương: +19 = 0001 0011 (8 bit) +19 = 0000 0000 0001 0011 (16 bit) thêm bit bên trái Đối với số âm: - 19 = 1110 1101 (8 bit) - 19 = 1111 1111 1110 1101 (16 bit) thêm bit bên trái Với n=32 bit: biểu diễn từ -231 đến 231-1 Với n=64 bit: biểu diễn từ -263 đến 263-1 Biểu diễn số nguyên theo mã BCD Binary Coded Decimal Code Số BCD dùng để tính tốn số thập phân hệ nhị phân Số BCD số viết theo hệ 16 giá trị tính theo hệ 10 Số 12BCD viết hệ 0001 0010 có giá trị 12 thay 18 (1216= 1810) Dùng bit để mã hoá cho chữ số thập phân từ đến 0000 0011 0110 1001 0001 0100 0111 0010 0101 1000 Có tổ hợp không sử dụng: 1010, 1011, 1100, 1101, 1110, 1111 Các kiểu lưu trữ số BCD BCD khơng gói (Unpacked BCD): Mỗi số BCD 4-bit lưu trữ 4-bit thấp byte Ví dụ: Số 35 lưu trữ byte: 0011 0101 BCD gói (Packed BCD): Hai số BCD lưu trữ byte Ví dụ: số 35 lưu trữ byte: 00110101 Thực phép toán số học với số nguyên Phép cộng Phép đảo dấu Phép trừ Nhân số nguyên Phép đảo dấu máy tính thực chất lấy bù khơng dấu có dấu Thuật toán nhân nhanh Booth Chia số nguyên khơng dấu có dấu Số dấu chấm động Số chấm động (floating point) dùng để tính tốn số thực số thực X biểu diễn theo kiểu số dấu chấm động sau: X = ± m * B±e m phần định trị (Mantissa), B số (base), e phần mũ (Exponent) m (mantissa) định độ xác B (base) e (exponent) định độ lớn/nhỏ Số dấu chấm động Một giá trị biểu diễn nhiều dạng Khó xử lý Cần chuẩn hóa Số chấm động theo chuẩn IEEE 754 Cơ số Có dạng Chính xác đơn 32 bit, độ lệch mũ (bias) 127 Cơng thức tính giá trị X = (-1)S x 1.m x 2e-127 Chính xác kép 64 bit, độ lệch mũ (bias) 1023 Cơng thức tính giá trị X = (-1)S x 1.m x 2e-1023 Số chấm động theo chuẩn IEEE 754 Các quy ước đặc biệt Các bit e 0, bit m 0, X= ± Các bit e 1, bit m 0, X= ± ∞ x000 0000 0000 0000 0000 0000 0000 0000 X= ± x111 1111 1000 0000 0000 0000 0000 0000 X= ± ∞ Các bit e 1, cịn m có bit 1, khơng biểu diễn cho số (NaN – not a number) Biểu diễn ký tự Bộ mã ASCII (American Standard Code for Information Interchange) Do ANSI (American National Standard Institute) thiết kế Bộ mã bit mã hóa 28 =256 ký tự, có mã từ: 0016 ÷ FF16 , đó: 128 ký tự chuẩn, có mã từ 0016 ÷ 7F16 128 ký tự mở rộng, có mã từ 8016 ÷ FF16 Bộ mã Unicode Bộ mã ASCII Các ký tự chuẩn 26 chữ hoa ‘A’ đến ‘Z’ có mã từ 4116 đến 5A16 (65 đến 90) 0100 0001 = 4116 0100 0010 = 4216 0101 1010 = 5A16 26 chữ thường ‘a’ đến ‘z’ có mã từ 6116 đến 7A16 (97 đến 122) ‘A’ ‘B’ ‘Z’ ‘a’ ‘b’ ‘z’ 0110 0001 = 6116 0110 0010 = 6216 0111 1010 = 7A16 10 chữ số thập phân từ đến có mã từ 3016 đến 3916 (48 đến 57) ‘0’ ‘1’ ‘9’ 0011 0000 = 3016 0011 0001 = 3116 0011 1001 = 3916 Bộ mã hợp Unicode Do hãng máy tính hàng đầu thiết kế Bộ mã 16-bit Bộ mã đa ngơn ngữ Có hỗ trợ ký tự tiếng Việt ... a020 + a-1 2-1 + + a-m2-m Ví dụ: 1101001.1 1(2) 654321 0-1 - 2-3 -4 = 26 + 25 + 23 + 20 + 2-1 + 2-3 + 2-4 = 64 + 32 + + + 0.5 + 0.125 + 0.0625 = 105.6875(10) Hệ bát phân Hệ thập lục phân Tổng quát... đơn vị thông tin nhỏ Dùng n bit biểu diễn 2n giá trị khác nhau: 00 000 = 11 111 = 2n-1 Hệ nhị phân Có số nhị phân A sau: A = anan-1 a1a0.a-1 a-m Giá trị A tính sau: A = an2n + an-12n-1 +... ứng, bit an-1 = Biểu diễn số nguyên có dấu Dạng tổng quát số nguyên A: an-1an-2…a2a1a0 Giá trị A xác định sau: n2 A an 1 n 1 i i 0 Dải biểu diễn: -2 n-1 ÷ 2n- 1-1 Số bit có