Biểu diễn dữ liệu & số học máy tính là nội dung chính của chương 2 thuộc bộ bài giảng Cấu trúc máy tính của Phạm Ngọc Hưng. Đến với chương này các bạn sẽ được tìm hiểu về các hệ đếm cơ bản. Cùng tìm hiểu để nắm bắt nội dung thông tin tài liệu.
Cấu trúc máy tính Chương BIỂU DIỄN DỮ LIỆU & SỐ HỌC MÁY TÍNH Nội dung chương 2.1 C|c hệ đếm 2.2 M~ hóa v{ lưu trữ liệu m|y tính 2.3 Biểu diễn số nguyên 2.4 C|c phép to|n số học với số nguyên 2.5 Biểu diễn số thực 2.6 Biểu diễn kí tự Các hệ đếm Về mặt to|n học, ta biểu diễn số theo hệ đếm số Khi nghiên cứu m|y tính, ta quan t}m đến c|c hệ đếm sau đ}y: Hệ thập ph}n (Decimal System) → người sử dụng Hệ nhị ph}n (Binary System) → m|y tính sử dụng Hệ mười s|u (Hexadecimal System) → dùng để viết gọn cho số nhị ph}n Hệ thập phân Sử dụng 10 chữ số: 0,1,2,3,4,5,6,7,8,9 để biểu diễn số Dùng n chữ số thập ph}n biểu diễn 10n gi| trị nguyên khác nhau: 00 000 = 99 999 = 10n-1 Giả sử số A biểu diễn dạng: A = an an-1 … a1 a0 a-1 a-2 … a-m Gi| trị A hiểu sau: A an10 n an 110 n 1 a1101 a0100 a110 1 am10 m A n i a 10 i i m Ví dụ Số thập ph}n 472.38 có gi| trị hiểu sau: 472.38 = x 102 + x 101 + x 100 + x 10-1 + x 10-2 Mở rộng cho hệ số r (r>1) Sử dụng r chữ số có gi| trị riêng từ đến r-1 để biểu diễn số Giả sử có số A biểu diễn c|c chữ số hệ đếm theo số r sau: A = an an-1 … a1 a0 a-1 a-2 … a-m Gi| trị A l{: A an r n an 1r n 1 a1r a0 r a1r 1 a2 r 2 am r m A n i a r i i m Một chuỗi n chữ số hệ đếm số r biểu diễn rn giá trị nguyên khác Hệ nhị phân Sử dụng chữ số: 0,1 Chữ số nhị ph}n gọi l{ bit (binary digit) Bit l{ đơ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 Giả sử có số A biểu diễn theo hệ nhị ph}n sau: A = an an-1 … a1 a0 a-1 a-2 … a-m Với l{ c|c chữ số nhị ph}n, gi| trị A l{: A an n an 1 n 1 a1 21 a0 20 a1 1 a2 2 am m A n i a i i m Ví dụ Số nhị ph}n 1101001.1011 có gi| trị x|c định sau: 1101001.1011(2) = 26 + 25 + 23 + 20 + 2-1 + 2-3 + 2-4 = 64 + 32 + + + 0.5 + 0.125 + 0.0625 = 105.6875(10) Đổi số thập phân sang nhị phân Thực chuyển đổi phần nguyên v{ phần lẻ riêng Chuyển đổi phần nguyên: Cách 1: chia dần số cho 2, x|c định c|c phần dư, viết c|c số dư theo chiều ngược lại Ví dụ: chuyển đổi 105(10) sang hệ nhị ph}n ta l{m sau: 105 : = 52 dư 52 : = 26 dư 26 : = 13 dư 13 : = dư 6:2 = dư 3:2 = dư 1:2 = dư Như vậy, ta có: 105(10) = 1101001(2) Đổi số thập phân sang nhị phân Chuyển đổi phần nguyên (tiếp): Cách 2: ph}n tích số th{nh tổng c|c lũy thừa 2, sau dựa v{o c|c số mũ để x|c định dạng biểu diễn nhị ph}n Ví dụ: 105 = 64 + 32 + + = 26 + 25 + 23 + 20 105(10) = 1101001(2) Chuyển đổi phần lẻ: Nh}n phần lẻ với lấy phần nguyên Sau viết c|c phần nguyên theo chiều thuận Ví dụ: chuyển đổi số 0.6875(10) sang hệ nhị ph}n: 0.6875 x = 1.3750 phần nguyên 0.375 x2 = 0.750 phần nguyên 0.75 x2 = 1.50 phần nguyên 0.5 x2 = 1.0 phần nguyên Kết l{: 0.6875(10) = 0.1011(2) = = = = 1 10 Biểu diễn kí tự máy tính Bộ m~ ASCII (American Standard Code for Information Interchange) Bộ m~ Unicode 92 Bộ mã ASCII Do ANSI (American National Standard Institute) thiết kế L{ m~ bit m~ hóa 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 93 16 32 48 @ 64 P 80 ` 96 p 112 17 ! 33 49 A 65 Q 81 a 97 q 113 18 " 34 50 B 66 R 82 b 98 r 114 19 # 35 51 C 67 S 83 c 99 s 115 20 $ 36 52 D 68 T 84 d 100 t 116 21 % 37 53 E 69 U 85 e 101 u 117 22 & 38 54 F 70 V 86 f 102 v 118 23 ' 39 55 G 71 W 87 g 103 w 119 24 ( 40 56 H 72 X 88 h 104 x 120 25 ) 41 57 I 73 Y 89 i 105 y 121 A 10 26 * 42 : 58 J 74 Z 90 j 106 z 122 B 11 27 + 43 ; 59 K 75 [ 91 k 107 { 123 C 12 28 , 44 < 60 L 76 \ 92 l 108 | 124 D 13 29 45 = 61 M 77 ] 93 m 109 } 125 E 14 30 46 > 62 N 78 ^ 94 n 110 ~ 126 F 15 31 / 47 ? 63 O 79 95 o 111 127 HEXA 94 a Các kí tự chuẩn 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 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) 33 m~ điều khiển: m~ từ 0016 ÷ 1F16 7F16 dùng để m~ hóa cho c|c chức điều khiển 95 Điều khiển định dạng BS Backspace - Lùi lại vị trí: Ký tự điều khiển trỏ lùi lại vị trí HT Horizontal Tab - Tab ngang: Ký tự điều khiển trỏ dịch tiếp khoảng định trước LF Line Feed - Xuống dòng: Ký tự điều khiển trỏ chuyển xuống dòng VT Vertical Tab - Tab đứng: Ký tự điều khiển trỏ chuyển qua số dòng định trước FF Form Feed - Đẩy sang đầu trang: Ký tự điều khiển trỏ di chuyển xuống đầu trang CR Carriage Return - Về đầu dòng: Ký tự điều khiển trỏ di chuyển đầu dòng hành 96 Đ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 liệu văn để 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 liệu văn bắt đầu STX EOT End of Transmission - Kết thúc truyền: Chỉ 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áy xa ACK Acknowledge - Báo nhận: Ký tự phát từ phía thu báo cho phía phát biết liệu nhận thành công NAK Negative Aknowledge - Báo phủ nhận: Ký tự phát từ phía thu báo cho phía phát biết việc nhận liệu khơng thành cơng SYN Synchronous / Idle - Đồng hóa: Được sử dụng hệ thống truyền đồng để đồng hố q trình truyền liệu ETB End of Transmission Block - Kết thúc khối truyền: Chỉ kết thúc khối liệu truyền 97 Đ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 tập tin GS Group Separator - Ký hiệu phân cách nhóm: Đánh dấu ranh giới nhóm tin (tập hợp ghi) RS Record Separator - Ký hiệu phân cách ghi: Đánh dấu ranh giới ghi US Unit Separator - Ký hiệu phân cách đơn vị: Đánh dấu ranh giới phần ghi 98 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 khơng có liệu BEL Bell - Chng: Được sử dụng phát tiếng bíp cần gọi ý người SO Shift Out - Dịch ra: Chỉ mã nằm tập ký tự chuẩn gặp ký tự SI SI Shift In - Dịch vào: Chỉ mã nằm tập ký tự chuẩn DLE DC1 ÷ DC4 Data Link Escape - Thoát liên kết liệu: Ký tự thay đổi ý nghĩa nhiều ký tự liên tiếp sau Device Control - Điều khiển thiết bị : Các ký tự dùng để điều khiển thiết bị phụ trợ CAN Cancel - Hủy bỏ: Chỉ số ký tự nằm trước cần phải bỏ qua EM End of Medium - Kết thúc phương tiện: Chỉ ký tự trước ký tự cuối có tác dụng với phương tiện vật lý SUB Substitute - Thay thế: Được thay cho ký tự xác định bị lỗi ESC Escape - Thoát: Ký tự dùng để cung cấp mã mở rộng cách kết hợp với ký tự sau DEL Delete - Xóa: Dùng để xóa ký tự khơng mong muốn 99 b Các kí tự mở rộng Được định nghĩa bởi: Nh{ chế tạo m|y tính Người ph|t triển phần mềm Ví dụ: Bộ m~ ký tự mở rộng IBM: dùng m|y tính IBM-PC Bộ m~ ký tự mở rộng Apple: dùng m|y tính Macintosh C|c nh{ ph|t triển phần mềm tiếng Việt đ~ thay đổi phần n{y để m~ ho| cho c|c ký tự riêng chữ Việt, ví dụ m~ TCVN 5712 100 Bộ mã Unicode Do c|c h~ng m|y tính h{ng đầu thiết kế L{ m~ 16-bit Được thiết ké cho đa ngơn ngữ, có tiếng Việt 101 Bài tập Giả sử có c|c biến nhớ đ}y chứa c|c số nguyên có dấu 8-bit với nội dung biểu diễn theo hệ 16 sau: P = 3A Q = 7C R = DE S = FF H~y x|c định gi| trị c|c biến nhớ dạng số thập ph}n 102 Bài tập Giả sử có X thuộc kiểu số nguyên có dấu 16-bit, g|n gi| trị dạng thập ph}n -1234 H~y cho biết nội dung c|c byte nhớ chứa biến dạng Hexa, biết nhớ lưu trữ theo kiểu đầu nhỏ (little-endian) 103 Bài tập Giả sử có biến P chứa số nguyên có dấu 16 bit Nội dung biến P cho nhớ sau: 9D(16) 80(16) Địa tăng dần (Little-endian) H~y x|c định gi| trị biến P dạng thập ph}n 104 Bài tập Giả sử có biến số thực X biểu diễn số dấu chấm động theo chuẩn IEEE 754 dạng 32 bit, chiếm byte nhớ với nội dung hình vẽ sau 00(16) 80(16) D9(16) Địa tăng dần C3(16) Biết nhớ tổ chức theo kiểu đầu nhỏ (little-endian), x|c định gi| trị thập ph}n số thực 105 Bài tập Giả sử có biến X thuộc kiểu số dấu chấm động theo chuẩn IEEE 754 dạng 32 bit Nó g|n gi| trị dạng thập ph}n -124.125 v{ lưu trữ v{o nhớ byte nhớ có địa l{ 200 H~y cho biết nội dung c|c byte nhớ chứa biến dạng Hexa, biết nhớ lưu trữ theo kiểu đầu nhỏ (littleendian) 106 ... +1 +2 Trục số học máy tính: -1 +1 -2 +2 + 127 - 128 - 127 -2 -1 - 128 + 127 Trục số học: - 128 -2 -1 127 41 Với n = bit (tiếp) Kiểu liệu tương ứng Turbo C l{ kiểu char Ví dụ: char a; a = 127 ;... Dạng tổng qu|t số }m: 1an -2 a2a1a0 Gi| trị số }m: A ? ?2 n 1 n? ?2 2i i 0 Dải biểu diễn số }m: [-2 n-1, -1 ] Dải biểu diễn số nguyên có dấu n bit l{ [-2 n-1, 2n- 1-1 ] 37 Biểu diễn số nguyên... = 1101 0010 Giải: A = 26 + 24 + 22 + 21 = 64 + 16 + + = +86 B = -2 7 + 26 + 24 + 21 = - 128 + 64 + 16 + = -4 6 40 Trường hợp cụ thể: với n = bit Dải biểu diễn l{ [- 128 , + 127 ] 0000 0000 = 0000 0001