Bài giảng Kiến trúc máy tính - Chương 2: Biểu diễn thông tin máy tính - Lê Văn Hùng
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kiến trúc máy tính - Chương 2: Biểu diễn thông tin máy tính - Lê Văn Hùng", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_kien_truc_may_tinh_chuong_2_bieu_dien_thong_tin_ma.ppt
Nội dung text: Bài giảng Kiến trúc máy tính - Chương 2: Biểu diễn thông tin máy tính - Lê Văn Hùng
- Kiến trúc máy tính Chương 2: Biểu diễn thông tin trong máy tính THS. Lê Văn Hùng – Khoa HTTTKT – Học viện Ngân hàng
- BIỂU DIỄN DỮ LIỆU VÀ SỐ HỌC MÁY TÍNH l 2.1. Các hệ thống số l 2.2. Mã hoá và lưu trữ dữ liệu trong máy tính l 2.3. Biểu diễn số nguyên l 2.4. Thực hiện các phép toán số học với số nguyên l 2.5. Số dấu chấm động l 2.6. Biểu diễn ký tự
- 2.1. Các hệ thống số l Hệ thập phân (Decimal System) l Con người sử dụng l Hệ nhị phân (Binary System) l Máy tính sử dụng l Hệ thập lục phân (Hexadecimal System) l Dùng để viết gọn số nhị phân l Hệ bát phân (Octal System)
- Hệ thập phân
- Hệ thập phân l Cơ số 10 l 10 chữ số: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 l Dùng n chữ số thập phân có thể biểu diễn được 10n giá trị khác nhau: l 00 000 = 0 l 99 999 = 10n - 1
- Hệ thập phân l 472.38 = 4x102 + 7x101 + 2x100 + 3x10-1 + 8x10-2 l Các chữ số của phần nguyên: l 472 : 10 = 47 dư 2 l 47 : 10 = 4 dư 7 l 4 : 10 = 0 dư 4 l Các chữ số của phần lẻ: l 0.38 x 10 = 3.8 phần nguyên = 3 l 0.8 x 10 = 8.0 phần nguyên = 8
- Hệ nhị phân
- Hệ nhị phân l Cơ số 2 l 2 chữ số nhị phân: 0 và 1 l Chữ số nhị phân gọi là bit (binary digit) l Bit là đơn vị thông tin nhỏ nhất l Dùng n bit có thể biểu diễn được 2n giá trị khác nhau: l 00 000 = 0 l 11 111 = 2n-1
- Hệ nhị phân l Có một số nhị phân A như sau: A = anan-1 a1a0.a-1 a-m l Giá trị của A được tính như sau: n n-1 0 -1 -m A = an2 + an-12 + + a02 + a-12 + + a-m2 l Ví dụ: 1101001.1 0 1 1(2) 6543210-1-2-3-4 = 26 + 25 + 23 + 20 + 2-1 + 2-3 + 2-4 = 64 + 32 + 8 + 1 + 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
- Chuyển đổi các hệ số
- Chuyển đổi các hệ số
- Phương pháp chuyển đổi
- Phương pháp chuyển đổi
- Biểu diễn thông tin trong hệ nhị phân l BIT (BInary digiT) : 0 1 l BYTE = tổ hợp 8 bit : 01001101 11111111 l WORD = tổ hợp nhiều bit : 10110 1011100101 l 1 KiloByte (KB) = 1024 byte l 1 MegaByte (MB) = 1024 KB l 1 GigaByte (GB) = 1024 MB
- 2.2 Mã hoá và lưu trữ dữ liệu trong máy tính l Nguyên tắc chung về mã hoá dữ liệu l Mọi dữ liệu đưa vào máy tính đều được mã hoá thành số nhị phân l Các loại dữ liệu l Dữ liệu nhân tạo: do con người quy ước § Dữ liệu số nguyên: mã hoá theo một số chuẩn qui ước § Dữ liệu số thực: mã hoá bằng số dấu chấm động § Dữ liệu ký tự: mã hoá theo bộ mã ký tự l Dữ liệu tự nhiên: tồn tại khách quan với con người
- Mã hóa thông tin đầu vào
- Mã hóa thông tin đầu vào
- Thứ tự lưu trữ các byte của dữ liệu l Bộ nhớ chính thường được tổ chức theo byte l Độ dài từ dữ liệu có thể chiếm từ một đến nhiều byte ⇒ cần phải biết thứ tự lưu trữ các byte trong bộ nhớ chính với các dữ liệu nhiều byte.
- Thứ tự lưu trữ các byte của dữ liệu l Có 2 cách lưu trữ: l Lưu trữ đầu nhỏ (Little-endian): Byte thấp được lưu trữ ở ngăn nhớ có địa chỉ nhỏ hơn, byte cao được lưu trữ ở ngăn nhớ có địa chỉ lớn hơn. l Lưu trữ đầu to (Big-endian): Byte cao được lưu trữ ở ngăn nhớ có địa chỉ nhỏ hơn, byte thấp được lưu trữ ở ngăn nhớ có địa chỉ lớn hơn. l Intel 80x86 và các Pentium ⇒ Little-endian l Motorola 680x0 và các bộ xử lý RISC ⇒ Big-endian l Power PC và Itanium ⇒ cả hai
- 2.3 Biểu diễn số nguyên l Có hai loại số nguyên: l Số nguyên không dấu (Unsigned Integer) l Số nguyên có dấu (Signed Integer) l Biểu diễn số nguyên không dấu l Dùng n bit biểu diễn số nguyên không dấu A: an-1an-2 a2a1a0 l Giá trị của A được tính như sau: l Dải biểu diễn của A: 0 -:- 2n-1 l Số 8 bit có giá trị : 0 ÷ 255 l Số 16 bit có giá trị : 0 ÷ 65 535 l Số 32 bit có giá trị : 0 ÷ 4 294 967 295
- Biểu diễn số nguyên không dấu n=8 bit l Biểu diễn được các giá trị từ 0 đến 255 l 0000 0000 = 0 Chú ý: l 0000 0001 = 1 1111 1111 l 0000 0010 = 2 + 0000 0001 l 0000 0011 = 3 1 0000 0000 l Vậy: 255 + 1 = 0? l 1111 1111 = 255 do tràn nhớ ra ngoài
- Biểu diễn số nguyên có dấu l Số bù một và Số bù hai l Giả sử A là một số nhị phân, ta có: l Số bù một của A nhận được bằng cách đảo giá trị các bit của A l (Số bù hai của A) = (Số bù một của A) + 1 l Ví dụ: với n= 8 bit l Giả sử có A = 0010 0101 l Số bù một của A = 1101 1010 + 1 l Số bù hai của A = 1101 1011 l Vì A + (Số bù hai của A) = 0 dùng số bù hai để biểu diễn cho số âm
- Biểu diễn số nguyên có dấu l Biểu diễn số nguyên có dấu bằng mã bù hai l Dùng n bit biểu diễn số nguyên có dấu A: an-1an-2 a2a1a0 l Qui ước: chọn bit có trọng số cao nhất (MSB) làm bit dấu l Với A là số dương: bit an-1 = 0, các bit còn lại biểu diễn độ lớn như số không dấu l Với A là số âm: được biểu diễn bằng số bù hai của số dương tương ứng, vì vậy bit an-1 = 1
- Biểu diễn số nguyên có dấu l Dạng tổng quát của số nguyên A: an-1an-2 a2a1a0 l Giá trị của A được xác định như sau: l Dải biểu diễn: -2n-1 ÷ 2n-1-1 l Số 8 bit có dấu có giá trị : -128 ÷ +127 l Số 16 bit có dấu có giá trị : -32768 ÷ +32767
- Biểu diễn số nguyên có dấu n = 8 bit l Biểu diễn được các giá trị từ -128 đến +127 l 0000 0000 = 0 l 0000 0001 = +1 l 0000 0010 = +2 Chú ý: l 0000 0011 = +3 +127 + 1 = -128 l -128 - 1 = +127 l 0111 1111 = +127 do tràn xảy ra l 1000 0000 = - 128 l 1000 0001 = - 127 l l 1111 1110 = -2 l 1111 1111 = -1
- Biểu diễn số nguyên có dấu l Chuyển đổi từ byte thành word l Đối với số dương: l +19 = 0001 0011 (8 bit) l +19 = 0000 0000 0001 0011 (16 bit) thêm 8 bit 0 bên trái l Đối với số âm: l - 19 = 1110 1101 (8 bit) l - 19 = 1111 1111 1110 1101 (16 bit) thêm 8 bit 1 bên trái l Với n=32 bit: biểu diễn từ -231 đến 231-1 l 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 l Số BCD được dùng để tính toán trên số thập phân trong hệ nhị phân. l Số BCD là số viết theo hệ 16 nhưng giá trị tính theo hệ 10. l Số 12BCD được viết trong hệ 2 là 0001 0010 nhưng có giá trị là 12 thay vì 18 (1216= 1810). l Dùng 4 bit để mã hoá cho các chữ số thập phân từ 0 đến 9 0 0000 3 0011 6 0110 9 1001 1 0001 4 0100 7 0111 2 0010 5 0101 8 1000 l Có 6 tổ hợp không sử dụng: l 1010, 1011, 1100, 1101, 1110, 1111
- Các kiểu lưu trữ số BCD l BCD không gói (Unpacked BCD): l Mỗi số BCD 4-bit được lưu trữ trong 4-bit thấp của mỗi byte. l Ví dụ: Số 35 được lưu trữ 2 byte: l 0011 0101 l BCD gói (Packed BCD): l Hai số BCD được lưu trữ trong 1 byte. l Ví dụ: số 35 được lưu trữ 1 byte: l 0 0 1 1 0 1 0 1
- Thực hiện các phép toán số học với số nguyên l Phép cộng l Phép đảo dấu l Phép đảo dấu trong máy tính thực chất là lấy bù 2 l Phép trừ l Nhân số nguyên l không dấu l có dấu l Thuật toán nhân nhanh Booth l Chia số nguyên l không dấu l có dấu
- Phép cộng số nguyên không dấu Khi cộng 2 số nguyên không dấu n bit, kết quả nhận được là n bit: -Nếu không có nhớ ra khỏi bít cao nhất thì kết quả nhận được luôn đúng (Cout =0). -Nếu có nhớ ra khỏi bit cao nhất thì kết quả nhận được là sai, ta nói có nhớ tràn ra ngoài (Cout = 1). - Tràn nhớ ra ngoài (carry out) xảy ra khi tổng >2n-1
- PHÉP ĐẢO DẤU
- CỘNG SỐ NGUYÊN CÓ DẤU
- Nguyên tắc thực hiện phép trừ
- Nhân số nguyên không dấu
- Nhân số nguyên không dấu (tiếp)
- Bộ nhân số không dấu
- Bộ nhân số không dấu
- NHÂN SỐ NGUYÊN CÓ DẤU
- CHIA 2 SỐ NGUYÊN KHÔNG DẤU
- CHIA 2 SỐ NGUYÊN KHÔNG DẤU Thực hiện chia từ trái sang phải như sau: -Mỗi lần lấy 1 chữ số ØNếu không chia được thì phần kết quả viết 0 vào. ØNếu chia được thì viết kết quả và nhân lại rồi trừ. - Lặp lại cho tới khi hết chữ số.
- CHIA 2 SỐ NGUYÊN CÓ DẤU
- Số dấu chấm động l Số chấm động (floating point) dùng để tính toán trên số thực. l một số thực X được biểu diễn theo kiểu số dấu chấm động như sau: X = ± m * B±e l m là phần định trị (Mantissa), l B là cơ số (base), l e là phần mũ (Exponent). l m (mantissa) quyết định độ chính xác l B (base) l e (exponent) quyết định độ lớn/nhỏ
- Số dấu chấm động l Một giá trị có thể biểu diễn dưới nhiều dạng l Khó xử lý l Cần chuẩn hóa
- Số chấm động theo chuẩn IEEE 754 (Institute of Electric & Electronic Engineers) l Cơ số 2 l Có 2 dạng l Chính xác đơn l 32 bit, độ lệch mũ (bias) 127 l Công thức tính giá trị X = (-1)S x 1.m x 2e-127 l Chính xác kép l 64 bit, độ lệch mũ (bias) 1023 l 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 l Các bit của e bằng 0, các bit của m bằng 0, thì X= ± 0 l x000 0000 0000 0000 0000 0000 0000 0000 X= ± 0 l Các bit của e bằng 1, các bit của m bằng 0, thì X= ± ∞ l x111 1111 1000 0000 0000 0000 0000 0000 X= ± ∞ l Các bit của e bằng 1, còn m có ít nhất 1 bit bằng 1, thì nó không biểu diễn cho số nào cả (NaN – not a number)
- Ví dụ l Tính số thực: 0100 0010 1000 1100 1110 1001 1111 1100
- Biểu diễn ký tự l Bộ mã ASCII (American Standard Code for Information Interchange) l Do ANSI (American National Standard Institute) thiết kế l Bộ mã 8 bit có thể mã hóa được 28 =256 ký tự, có mã từ: 0016 ÷ FF16 , trong đó: l 128 ký tự chuẩn, có mã từ 0016 ÷ 7F16 l 128 ký tự mở rộng, có mã từ 8016 ÷ FF16 l Bộ mã Unicode
- Bộ mã ASCII l Các ký tự chuẩn 26 chữ cái hoa ‘A’ đến ‘Z’ có mã từ 4116 đến 5A16 (65 đến 90) l ‘A’ ကÆ0100 0001 = 4116 l ‘B’ ကÆ0100 0010 = 4216 l l ‘Z’ ကÆ0101 1010 = 5A16 l 26 chữ cái thường ‘a’ đến ‘z’ có mã từ 6116 đến 7A16 (97 đến 122) l ‘a’ ကÆ0110 0001 = 6116 l ‘b’ ကÆ0110 0010 = 6216 l l ‘z’ ကÆ0111 1010 = 7A16 l 10 chữ số thập phân từ 0 đến 9 có mã từ 3016 đến 3916 (48 đến 57) l ‘0’ ကÆ0011 0000 = 3016 l ‘1’ ကÆ0011 0001 = 3116 l l ‘9’ ကÆ0011 1001 = 3916
- Bộ mã hợp nhất Unicode l Do các hãng máy tính hàng đầu thiết kế l Bộ mã 16-bit l Bộ mã đa ngôn ngữ l Có hỗ trợ các ký tự tiếng Việt