Bài giảng Tin học Đại cương - Bài 2: Biểu diễn dữ liệu trong máy tính - Trường Đại học Bách khoa Hà Nội
Nội dung
2.1. Biểu diễn số trong các hệ đếm
2.2. Biểu diễn dữ liệu trong máy tính,
đơn vị thông tin
2.3. Biểu diễn số nguyên
2.4. Tính toán số học với số nguyên
2.5. Tính toán logic với số nhị phân
2.6. Biểu diễn số thực
2.7. Biểu diễn ký tự3
Nội dung
2.1. Biểu diễn số trong các hệ đếm
2.2. Biểu diễn dữ liệu trong máy tính,
đơn vị thông tin
2.3. Biểu diễn số nguyên
2.4. Tính toán số học với số nguyên
2.5. Tính toán logic với số nhị phân
2.6. Biểu diễn số thực
2.7. Biểu diễn ký tự
Thực hiện các phép toán logic với 2 số nhị phân: – Kết quả là 1 số nhị phân khi thực hiện các phép toán logic với từng cặp bit của 2 số nhị phân đó – Các phép toán này chỉ tác động lên từng cặp bit mà không ảnh hƣởng đến bit khác. 72 Các phép toán logic với số nhị phân (tiếp) • VD: A = 1010 1010 và B = 0000 111 AND OR XOR NOT 1010 1010 01010101 0000 1111 11110000 00001010 10101111 10100101 Nhận xét: +Phép AND dùng để xoá một số bit và giữ nguyên 1 số bit còn lại. +Phép OR dùng để thiết lập 1 số bit và giữ nguyên 1 số bit khác. 73 2.1. Biểu diễn số trong các hệ đếm 2.2. Biểu diễn dữ liệu trong máy tính, đơn vị thông tin 2.3. Biểu diễn số nguyên 2.4. Tính toán số học với số nguyên 2.5. Tính toán logic với số nhị phân 2.6. Biểu diễn số thực 2.7. Biểu diễn ký tự Biểu diễn dữ liệu trong máy tính 74 Biểu diễn số thực • Nguyên tắc chung: Để biểu diễn số thực, trong máy tính ngƣời ta thƣờng dùng ký pháp dấu phẩy động (Floating Point Number). 75 Biểu diễn số thực (tiếp) • Một số thực X đƣợc biểu diễn theo kiểu số dấu chấm động nhƣ sau: X = M * RE Trong đó: – M là phần định trị (Mantissa) – R là cơ số (Radix) thƣờng là 2 hoạc 10. – E là phần mũ (Exponent) • Với R cố định thì để lƣu trữ X ta chỉ cần lƣu trữ M và E (dƣới dạng số nguyên) 76 Biểu diễn số thực (tiếp) • Ví dụ: với cơ số R = 10, giả sử 2 số thực N1 và N2 đƣợc lƣu trữ theo phần định trị và số mũ nhƣ sau: – M1 = -15 và E1 = +12 – M2 = +314 và E2 = -9 – Có nghĩa là N1 = M1 x 10 E1 = -15x10E1 = -15 000 000 000 000 và N2 = M2 x 10 E2 = 314 x 10-9 = 0.000 000 314 77 Biểu diễn số thực (tiếp) • Khi thực hiện phép toán với số dấu chấm động sẽ đƣợc tiến hành trên cơ sở các giá trị của phần định trị và phần mũ. 78 Biểu diễn số thực (tiếp) • Giả sử có 2 số dấu phẩy động sau: – N1 = M1 x RE1 và N2 = M2 x RE2 • Khi đó, việc thực hiện các phép toán số học sẽ đƣợc tiến hành: • N1 ± N2 = (M1 x R E1-E2± M2) x RE2 , • giả thiết E1 ≥ E2 • N1 x N2 = (M1x M2) x R E1+E2 • N1 /N2 = (M1 / M2) / R E1-E2 79 Chuẩn IEEE 754/85 • Là chuẩn mã hóa số dấu chấm động • Cơ số R = 2 • Có các dạng cơ bản: – Dạng có độ chính xác đơn, 32-bit – Dạng có độ chính xác kép, 64-bit – Dạng có độ chính xác kép mở rộng, 80- bit 80 Chuẩn IEEE 754/85 (tiếp) Khuôn dạng mã hóa: S me 79 63 078 64 S me 31 22 030 23 S me 63 51 062 52 81 Chuẩn IEEE 754/85 (tiếp) • S là bit dấu, S=0 đó là số dƣơng, S=1 đó là số âm. • e là mã lệch (excess) của phần mũ E, tức là: E = e – b Trong đó b là độ lệch (bias): – Dạng 32-bit : b = 127, hay E = e - 127 – Dạng 64-bit : b = 1023, hay E = e - 1023 – Dạng 80-bit : b = 16383, hay E = e - 16383 82 Chuẩn IEEE 754/85 (tiếp) • m là các bit phần lẻ của phần định trị M, phần định trị đƣợc ngầm định nhƣ sau: M = 1.m • Công thức xác định giá trị của số thực tƣơng ứng là: X = (-1)S x 1.m x 2e-b S e m 83 Ví dụ về số dấu chấm động • Ví dụ 1: Có một số thực X có dạng biểu diễn nhị phân theo chuẩn IEEE 754 dạng 32 bit nhƣ sau: 1100 0001 0101 0110 0000 0000 0000 0000 Xác định giá trị thập phân của số thực đó. • Giải: – S = 1 X là số âm – e = 1000 0010 = 130 – m = 10101100...00 – Vậy X = (-1)1 x 1.10101100...00 x 2130-127 = -1.101011 x 23 = -1101.011 = -13.375 84 Ví dụ về số dấu chấm động (tiếp) • Ví dụ 2: Xác định giá trị thập phân của số thực X có dạng biểu diễn theo chuẩn IEEE 754 dạng 32 bit nhƣ sau: 0011 1111 1000 0000 0000 0000 0000 0000 • Giải: – S = 0 X là số dƣơng – e = 0111 1111= 127 – m = 000000...00 – Vậy X = (-1)0 x 1.0000...00 x 2127-127 = 1.0 x 20 = 1 85 Ví dụ về số dấu chấm động (tiếp) • Ví dụ 3: Biểu diễn số thực X = 9.6875 về dạng số dấu chấm động theo chuẩn IEEE 754 dạng 32 bit • Giải: X = 9.6875(10) = 1001.1011(2) = 1.0011011 x 2 3 Ta có: – S = 0 vì đây là số dƣơng – E = e – 127 nên e = 127 + 3 = 130(10) = 1000 0010(2) – m = 001101100...00 (23 bit) Vậy: X = 0100 0001 0001 1011 0000 0000 0000 0000 86 Các quy ƣớc đặc biệt • Nếu tất cả các bit của e đều bằng 0, các bit của m đều bằng 0, thì X = 0 • Nếu tất cả các bit của e đều bằng 1, các bit của m đều bằng 0, thì X = • Nếu tất cả các bit của e đều bằng 1, m có ít nhất một bit bằng 1, thì X không phải là số (not a number - NaN) 87 Trục số biểu diễn • Dạng 32 bit: a = 2-127 ≈ 10-38 b = 2+127 ≈ 10+38 • Dạng 64 bit: a = 2-1023 ≈ 10-308 b = 2+1023 ≈ 10+308 • Dạng 80 bit: a = 2-16383 ≈ 10-4932 b = 2+16383 ≈ 10+4932 -0 +0-a b-b a underflow overflow overflow 88 Thực hiện các phép toán • X1 = M1 * R E1 • X2 = M2 * R E2 • Ta có – X1 X2 = (M1 * RE1-E2 M2) * RE2 , với E2 E1 – X1 * X2 = (M1 * M2) * RE1+E2 – X1 / X2 = (M1 / M2) * RE1-E2 89 2.1. Biểu diễn số trong các hệ đếm 2.2. Biểu diễn dữ liệu trong máy tính, đơn vị thông tin 2.3. Biểu diễn số nguyên 2.4. Tính toán số học với số nguyên 2.5. Tính toán logic với số nhị phân 2.6. Biểu diễn số thực 2.7. Biểu diễn ký tự Biểu diễn dữ liệu trong máy tính 90 Biểu diễn ký tự • Nguyên tắc chung: – Các ký tự cũng cần đƣợc chuyển đổi thành chuỗi bit nhị phân gọi là mã ký tự. – Số bit dùng cho mỗi ký tự theo các mã khác nhau là khác nhau. Vd : Bộ mã ASCII dùng 8 bit cho 1 ký tự. Bộ mã Unicode dùng 16 bit. 91 Bộ mã ASCII • Do ANSI (American National Standard Institute) thiết kế • ASCII là bộ mã đƣợc dùng để trao đổi thông tin chuẩn của Mỹ. Lúc đầu chỉ dùng 7 bit (128 ký tự) sau đó mở rộng cho 8 bit và có thể biểu diễn 256 ký tự khác nhau trong máy tính • Bộ mã 8 bit mã hóa đƣợc cho 28 = 256 kí tự, có mã từ 0016 FF16, bao gồm: – 128 kí tự chuẩn có mã từ 0016 7F16 – 128 kí tự mở rộng có mã từ 8016 FF16 92 93 Bộ mã ASCII (tiếp) • 95 kí tự hiển thị đƣợc:có mã từ 2016 ÷ 7E16 – 26 chữ cái hoa Latin 'A' ÷ 'Z' có mã từ 4116 ÷ 5A16 – 26 chữ cái thƣờng Latin 'a' ÷ 'z' có mã từ 6116 ÷ 7A16 – 10 chữ số thập phân '0' ÷ '9' có mã từ 3016 ÷ 3916 94 Bộ mã ASCII (tiếp) • 95 ký tự hiển thị đƣợc: – Các dấu câu: . , ? ! : ; – Các dấu phép toán: + - * / – Một số kí tự thông dụng: #, $, &, @, ... – Dấu cách (mã là 2016) 95 Bộ mã ASCII (tiếp) • 33 mã điều khiển: mã từ 0016 ÷ 1F16 và 7F16 dùng để mã hóa cho các chức năng điều khiển 96 Điều khiển định dạng BS Backspace - Lùi lại một vị trí: Ký tự điều khiển con trỏ lùi lại một vị trí. HT Horizontal Tab - Tab ngang: Ký tự điều khiển con trỏ dịch tiếp một khoảng đã định trước. LF Line Feed - Xuống một dòng: Ký tự điều khiển con trỏ chuyển xuống dòng dưới. VT Vertical Tab - Tab đứng: Ký tự điều khiển con trỏ chuyển qua một số dòng đã định trước. FF Form Feed - Đẩy sang đầu trang: Ký tự điều khiển con trỏ di chuyển xuống đầu trang tiếp theo. CR Carriage Return - Về đầu dòng: Ký tự điều khiển con trỏ di chuyển về đầu dòng hiện hành. 97 Điều khiển truyền số liệu SOH Start of Heading - Bắt đầu tiêu đề: Ký tự đánh dấu bắt đầu phần thông tin tiêu đề. STX Start of Text - Bắt đầu văn bản: Ký tự đánh dấu bắt đầu khối dữ liệu văn bản và cũng chính là để kết thúc phần thông tin tiêu đề. ETX End of Text - Kết thúc văn bản: Ký tự đánh dấu kết thúc khối dữ liệu văn bản đã được bắt đầu bằng STX. EOT End of Transmission - Kết thúc truyền: Chỉ ra cho bên thu biết kết thúc truyền. ENQ Enquiry - Hỏi: Tín hiệu yêu cầu đáp ứng từ một máy ở xa. ACK Acknowledge - Báo nhận: Ký tự được phát ra từ phía thu báo cho phía phát biết rằng dữ liệu đã được nhận thành công. NAK Negative Aknowledge - Báo phủ nhận: Ký tự được phát ra từ phía thu báo cho phía phát biết rằng việc nhận dữ liệu không thành công. SYN Synchronous / Idle - Đồng bộ hóa: Được sử dụng bởi hệ thống truyền đồng bộ để đồng bộ hoá quá trình truyền dữ liệu. ETB End of Transmission Block - Kết thúc khối truyền: Chỉ ra kết thúc khối dữ liệu được truyền. 98 Điều khiển phân cách thông tin FS File Separator - Ký hiệu phân cách tập tin: Đánh dấu ranh giới giữa các tập tin. GS Group Separator - Ký hiệu phân cách nhóm: Đánh dấu ranh giới giữa các nhóm tin (tập hợp các bản ghi). RS Record Separator - Ký hiệu phân cách bản ghi: Đánh dấu ranh giới giữa các bản ghi. US Unit Separator - Ký hiệu phân cách đơn vị: Đánh dấu ranh giới giữa các phần của bản ghi. 99 Các kí tự điều khiển khác NUL Null - Ký tự rỗng: Được sử dụng để điền khoảng trống khi không có dữ liệu. BEL Bell - Chuông: Được sử dụng phát ra tiếng bíp khi cần gọi sự chú ý của con người. SO Shift Out - Dịch ra: Chỉ ra rằng các mã tiếp theo sẽ nằm ngoài tập ký tự chuẩn cho đến khi gặp ký tự SI. SI Shift In - Dịch vào: Chỉ ra rằng các mã tiếp theo sẽ nằm trong tập ký tự chuẩn. DLE Data Link Escape - Thoát liên kết dữ liệu: Ký tự sẽ thay đổi ý nghĩa của một hoặc nhiều ký tự liên tiếp sau đó. DC1 ÷ DC4 Device Control - Điều khiển thiết bị : Các ký tự dùng để điều khiển các thiết bị phụ trợ. CAN Cancel - Hủy bỏ: Chỉ ra rằng một số ký tự nằm trước nó cần phải bỏ qua. EM End of Medium - Kết thúc phương tiện: Chỉ ra ký tự ngay trước nó là ký tự cuối cùng có tác dụng với phương tiện vật lý. SUB Substitute - Thay thế: Được thay thế cho ký tự nào được xác định là bị lỗi. ESC Escape - Thoát: Ký tự được dùng để cung cấp các mã mở rộng bằng cách kết hợp với ký tự sau đó. DEL Delete - Xóa: Dùng để xóa các ký tự không mong muốn. 100 Các kí tự mở rộng của bảng ASCII • Đƣợc định nghĩa bởi: – Nhà chế tạo máy tính – Ngƣời phát triển phần mềm 101 Các ký tự mở rộng của bảng Ascii • Ví dụ: – Bộ mã ký tự mở rộng của IBM: đƣợc dùng trên máy tính IBM-PC. – Bộ mã ký tự mở rộng của Apple: đƣợc dùng trên máy tính Macintosh. – Các nhà phát triển phần mềm tiếng Việt cũng đã thay đổi phần này để mã hoá cho các ký tự riêng của chữ Việt, ví dụ nhƣ bộ mã TCVN 5712. 102 Bộ mã Unicode • Do các hãng máy tính hàng đầu thiết kế • Là bộ mã 16-bit, Vậy số ký tự có thể biểu diễn (mã hoá) là 216 • Đƣợc thiết kế cho đa ngôn ngữ, trong đó có tiếng Việt Thảo luận 103 08/09/2010 Copyright by SOICT
File đính kèm:
- BD dữ liệu trong máy tính.pdf