Bài giảng Tin học đại cương - Chương 1: Thông tin và biểu diễn thông tin - Đỗ Bá Lâm

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

pdf139 trang | Chia sẻ: huongthu9 | Lượt xem: 505 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng Tin học đại cương - Chương 1: Thông tin và biểu diễn thông tin - Đỗ Bá Lâm, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG TS. Đỗ Bá Lâm lamdb@soict.hust.edu.vn TIN HỌC ĐẠI CƯƠNG Chương 1: Thông tin và biểu diễn thông tin Nội dung 1.1. Thông tin và Tin học 1.2. Biểu diễn số trong hệ đếm 1.3. Biểu diễn dữ liệu trong máy tính 2 Nội dung 1.1. Thông tin và Tin học 1.1.1. Thông tin và xử lý thông tin 1.1.2. Máy tính điện tử (MTĐT) 1.1.3. Tin học và các ngành liên quan 1.2. Biểu diễn số trong hệ đếm 1.3. Biểu diễn dữ liệu trong máy tính 3 Nội dung 1.1. Thông tin và Tin học 1.1.1. Thông tin và xử lý thông tin 1.1.2. Máy tính điện tử (MTĐT) 1.1.3. Tin học và các ngành liên quan 1.2. Biểu diễn số trong hệ đếm 1.3. Biểu diễn dữ liệu trong máy tính 4 a. Thông tin (Information) 5 Thông tin là khái niệm trừu tượng, giúp chúng ta hiểu và nhận thức thế giới Dự báo thời tiết Thời sự Thông tin có thể truyền từ người này sang người khác b. Dữ liệu (Data) 6 Dữ liệu là vật mang thông tin Dấu hiệu Tín hiệu Cử chỉ, hành vi c. Xử lý dữ liệu (Data processing) • Thông tin nằm trong dữ liệu → Cần phải xử lý dữ liệu để thu được thông tin cần thiết, hữu ích phục vụ cho con người • Quá trình xử lý dữ liệu NHẬP (INPUT) XỬ LÝ (PROCESSING) XUẤT (OUTPUT) LƯU TRỮ (STORAGE) • Khi dữ liệu ít, có thể làm thủ công • Khi dữ liệu nhiều lên, các công việc lặp đi lặp lại → ??? → Sử dụng máy tính điện tử để hỗ trợ cho việc lưu trữ, chọn lọc và xử lý dữ liệu. 8 c. Xử lý dữ liệu (2) Nội dung 1.1. Thông tin và Tin học 1.1.1. Thông tin và xử lý thông tin 1.1.2. Máy tính điện tử (MTĐT) 1.1.3. Tin học và các ngành liên quan 1.2. Biểu diễn số trong hệ đếm 1.3. Biểu diễn dữ liệu trong máy tính 9 1.1.2. Máy tính điện tử • Máy tính điện tử (Computer): – Tiết kiệm rất nhiều thời gian, công sức – Tăng độ chính xác trong việc tự động hóa một phần hay toàn phần của quá trình xử lý dữ liệu. 10 a. Biểu diễn thông tin trong MTĐT • Trong máy tính mọi thông tin đều được biểu diễn bằng số nhị phân • Để đưa dữ liệu vào cho máy tính, cần phải mã hoá nó về dạng nhị phân. • Với các kiểu dữ liệu khác nhau cần có cách mã hoá khác nhau. 11 a. Biểu diễn thông tin trong MTĐT (2) • Đơn vị nhỏ nhất để biểu diễn thông tin gọi là bit. • BIT là chữ viết tắt của BInary digiT. • Một bit có 2 trạng thái: 0 hoặc 1 • 0 = OFF ; 1 = ON 12 OFF ON a. Biểu diễn thông tin trong MTĐT (3) Tên gọi Ký hiệu Giá trị Byte KiloByte MegaByte GigaByte TeraByte Petabyte Exabyte B KB MB GB TB PB EB 8 bit 210 B = 1024 Byte 220 B = 1024 KB 230 B = 1024 MB 240 B = 1024 GB 250 B = 1024 TB 260 B = 1024 PB 13 • Các đơn vị biểu diễn thông tin lớn hơn: b. Phân loại MTĐT • Theo khả năng sử dụng chung: – Máy tính lớn/Siêu máy tính (Mainframe/Super Computer) – Máy tính tầm trung (Mini Computer) – Máy vi tính (Micro Computer) 14 i. Máy tính lớn/Siêu máy tính • Phức tạp, có tốc độ rất nhanh • Sử dụng trong các công ty lớn/viện nghiên cứu • Giải quyết các công việc lớn, phức tạp • Rất đắt (hàng trăm ngàn ~ hàng triệu USD). • Nhiều người dùng đồng thời (100 – 500) 15 Su p e r C o m p u t e r ii. Máy tính tầm trung (Mini computer) • Cũng giống như các máy Mainframe • Sự khác biệt chính: – Hỗ trợ ít người dùng hơn (10 – 100) – Nhỏ hơn và rẻ hơn (vài chục nghìn USD) 17 iii. Máy vi tính (Micro computer) • Sử dụng vi xử lý • Nhỏ, rẻ, hiệu năng cao, • Phù hợp cho nhiều đối tượng người dùng, sử dụng nhiều trong công nghiệp và giải trí: – Máy tính cá nhân – Personal Computer (PC) – Máy tính “nhúng” – Embedded Computer – Các thiết bị cầm tay như điện thoại di dộng, máy tính bỏ túi – ... 18 Máy tính cá nhân (Personal Computer – PC) • Máy tính để bàn – Desktop Computer • Máy tính di động – Portable Computer – Máy tính xách tay (Laptop Computer) – Máy tính bỏ túi (PDA - Personal Digital Assistant) • Máy tính bảng – Tablet Computer Máy tính để bàn Laptop Máy tính bảng PDA Máy tính nhúng (Embedded computer) • Là máy tính chuyên dụng (special-purpose computer) • Gắn trong các thiết bị gia dụng, máy công nghiệp • Giúp con người dùng sử dụng thiết bị hiệu quả hơn 20 c. Các thế hệ máy tính • Sự phát triển về công nghệ → Sự phát triển về máy tính 21 i. Thế hệ đầu (1950 – 1958) • 1930’s: Bóng đèn được sử dụng làm các bảng mạch tín hiệu điều khiển (electric circuits or switches) • Điều khiển bằng tay, kích thước rất lớn 22 Bóng đèn chân không (vacumm tube) ENIAC • Máy tính điện tử đầu tiên với công nghệ bóng chân không: • Kích thước: dài 10m, rộng 3m, cao 3m • Trong 1 giây thực hiện được 3 phép toán 23 ENIAC - Electronic Numerical Integrator and Calculator ii. Thế hệ thứ hai (1958 – 1964) • 1947: Bóng bán dẫn được phát minh tại Bell Laboratories • Bóng bán dẫn được sử dụng thay bóng đèn chân không 24 Công nghệ bán dẫn (diodes, transistors) TRADIC 25 • Máy tính đầu tiên sử dụng hoàn toàn bóng bán dẫn: • 8000 transistors • Nhanh hơn • Nhỏ hơn • Rẻ hơn. TRADIC - TRAnsistorized Airborne DIgital Computer iii. Thế hệ thứ ba (1965 – 1974) 26 • 1959 – thiết kế ra vi mạch đầu tiên dựa trên công nghệ silicon (silicon chip or microchip) • Trên 1 vi mạch tích hợp hàng triệu transitor Công nghệ mạch tích hợp (IC – integrated circuit) Vi mạch – Integrated Circuit 27 • Nhỏ hơn, • Rẻ hơn, • Hiệu quả hơn IBM 360 28 • Thiết kế trên công nghệ IC • Tốc độ tính toán: 1000 tỷ phép toán trong 1 giây iv. Thế hệ thứ tư (1974 – nay) 29 • Microprocessor = Central Processing Unit (CPU) thiết kế trong 1 vi mạch đơn • 1971 : Intel 4004 Vi xử lý (Microprocessor) 1975 – Altair 8800 30 Máy tính cá nhân đầu tiên – Altair 8800 Vi xử lý (Microprocessor) 31 1981 – IBM PC 32 Thế hệ máy tính cá nhân mới với kiến trúc mở IBM 1984 – Apple Macintosh 33 1990 - Personal Computers 34 • Tốc độ vi xử lý tăng nhanh: • CPU 1 lõi, • CPU đa lõi • Kiến trúc ít thay đổi e. Thế hệ 5 (1990 - nay) • Artificial Intelligence (AI) • Công nghệ vi điện tử với tốc độ tính toán cao và xử lý song song. • Mô phỏng các hoạt động của não bộ và hành vi con người • Có trí khôn nhân tạo với khả năng tự suy diễn phát triển các tình huống nhận được Nội dung 1.1. Thông tin và Tin học 1.1.1. Thông tin và xử lý thông tin 1.1.2. Máy tính điện tử (MTĐT) 1.1.3. Tin học và các ngành liên quan 1.2. Biểu diễn số trong hệ đếm 1.3. Biểu diễn dữ liệu trong máy tính 36 1.1.3. Tin học và các ngành liên quan • Tin học (Computer Science/Informatics) • Công nghệ thông tin (Information Technology - IT) • Công nghệ thông tin và truyền thông (Information and Communication Technology – ICT). • 1957, Karl Steinbuch người Đức đề xướng trong 1 bài báo có thuật ngữ "Informatik " • 1962, Philippe Dreyfus người Pháp gọi là “informatique " • Phần lớn các nước Tây Âu, trừ Anh đều chấp nhận. Ở Anh người ta sử dụng thuật ngữ ‘computer science’, hay ‘computing science’, • 1966, Nga cũng sử dụng tên informatika 38 a. Tin học (Informatics) a. Tin học (2) • Tin học được xem là ngành khoa học nghiên cứu các phương pháp, công nghệ và kỹ thuật xử lý thông tin một cách tự động. • Công cụ chủ yếu sử dụng trong tin học là máy tính điện tử và một số thiết bị truyền tin khác. • Nội dung nghiên cứu của tin học chủ yếu gồm 2 phần: – Kỹ thuật phần cứng (Hardware engineering) – Kỹ thuật phần mềm (Software engineering) 39 • Xuất hiện ở Việt nam vào những năm 90 của thế kỷ 20. • CNTT xử lý với các máy tính điện tử và các phần mềm máy tính nhằm chuyển đổi, lưu trữ, bảo vệ, truyền tin và trích rút thông tin một cách an toàn. (Information Technology Association of America) 40 b. Công nghệ thông tin • Một ngành sử dụng hệ thống các thiết bị và máy tính, bao gồm phần cứng và phần mềm để cung cấp một giải pháp xử lý thông tin cho các cá nhân, tổ chức có yêu cầu • Có ảnh hưởng và được ứng dụng trong nhiều ngành nghề khác nhau của xã hội • Các ứng dụng ngày nay của IT: – Quản trị dữ liệu – Quản lý hệ thống thông tin – Thiết kế sản phẩm – Ứng dụng khoa học 41 b. Công nghệ thông tin (2) • Information and Communication Technology – Truyền thông máy tính là sự kết nối một số lượng máy tính với nhau • Là thuật ngữ mới, nhấn mạnh sự không thể tách rời hiện nay của CNTT với công nghệ truyền thông trong thời đại “tất cả đều nối mạng” • Internet - Mạng máy tính toàn cầu 42 c. Công nghệ thông tin và truyền thông (ICT) Nội dung 1.1. Thông tin và Tin học 1.2. Biểu diễn số trong hệ đếm 1.2.1. Hệ đếm 1.2.2. Chuyển đổi cơ số 1.3. Biểu diễn dữ liệu trong máy tính 43 Nội dung 1.1. Thông tin và Tin học 1.2. Biểu diễn số trong hệ đếm 1.2.1. Hệ đếm 1.2.2. Chuyển đổi cơ số 1.3. Biểu diễn dữ liệu trong máy tính 44 45 • Là tập hợp các ký hiệu và qui tắc để biểu diễn và xác định giá trị các số. • Mỗi hệ đếm có một số ký tự/số (ký số) hữu hạn. Tổng số ký số của mỗi hệ đếm được gọi là cơ số (base hay radix), ký hiệu là b. • Ví dụ: Trong hệ đếm cơ số 10, dùng 10 ký tự là: các chữ số từ 0 đến 9. 1.2.1. Hệ đếm 46 • Về mặt toán học, ta có thể biểu diễn 1 số theo hệ đếm cơ số bất kì. • Khi nghiên cứu về máy tính, ta quan tâm đến các hệ đếm sau đây: – Hệ thập phân (Decimal System) → con người sử dụng – Hệ nhị phân (Binary System) → máy tính sử dụng – Hệ đếm bát phân (Octal System), hệ mười sáu (Hexadecimal System) →dùng để viết gọn số nhị phân 1.2.1. Hệ đếm (2) 47 • Hệ đếm thập phân hay hệ đếm cơ số 10 bao gồm 10 ký số theo ký hiệu sau: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 • Dùng n chữ số thập phân có thể biểu diễn được 10n giá trị khác nhau: • 00...000 = 0 • .... • 99...999 = 10n-1 a. Hệ đếm thập phân 48 • Giả sử một số A được biểu diễn dưới dạng: A = an an-1 a1 a0 . a-1 a-2 a-m → Giá trị của A được hiểu như sau: 1 1 0 1 1 1 0 110 10 ... 10 10 10 ... 10 10 n n m n n m n i i i m A a a a a a a A a − − − − − − =− = + + + + + + + =  a. Hệ đếm thập phân (2) 49 • Ví dụ: Số 5246 có giá trị được tính như sau: 5246 = 5 x 103 + 2 x 102 + 4 x 101 + 6 x 100 • Ví dụ: Số 254.68 có giá trị được tính như sau: 254.68 = 2 x 102 + 5 x 101 + 4 x 100 + 6 x 10-1 + 8 x 10-2 a. Hệ đếm thập phân (3) 50 • Có b ký tự để thể hiện giá trị số. Ký số nhỏ nhất là 0 và lớn nhất là b-1. • Số N(b) trong hệ đếm cơ số (b) được biểu diễn bởi: N(b)=anan-1an-2a1a0.a-1a-2a-m b. Hệ đếm cơ số b (với b ≥ 2, nguyên) b. Hệ đếm cơ số b (2) • Trong biểu diễn trên, số N(b) có n+1 ký số biểu diễn cho phần nguyên và m ký số lẻ biểu diễn cho phần lẻ, và có giá trị là: 51 52 • Sử dụng 2 chữ số: 0,1 • Chữ số nhị phân gọi là bit (binary digit) Ví dụ: Bit 0, bit 1 • Bit là đơn vị thông tin nhỏ nhất c. Hệ đếm nhị phân 53 • Dùng n bit có thể biểu diễn được 2n giá trị khác nhau: 00...000 (2) = 0 (trong hệ thập phân) ... 11...111 (2) = 2 n - 1 (trong hệ thập phân) • VD: Dùng 3 bit thì biểu diễn được các số từ 0 đến 7 (trong hệ thập phân) c. Hệ đếm nhị phân (2) 54 • Giả sử có số A được biểu diễn theo hệ nhị phân như sau: A = an an-1 a1 a0 . a-1 a-2 a-m • Với ai là các chữ số nhị phân, khi đó giá trị của A là: 1 1 0 1 2 1 1 0 1 22 2 ... 2 2 2 2 ... 2 2 n n m n n m n i i i m A a a a a a a a A a − − − − − − − − =− = + + + + + + + + =  c. Hệ đếm nhị phân (3) 55 • Ví dụ: Số nhị phân 1101001.1011 có giá trị: 1101001.1011(2) = 2 6 + 25 + 23 + 20 + 2-1 + 2-3 + 2-4 = 64 + 32 + 8 + 1 + 0.5 + 0.125 + 0.0625 = 105.6875(10) c. Hệ đếm nhị phân (4) 56 • Phép cộng: 1+0=0+1=1; 0+0=0; 1+1=10; • Phép trừ: 0-1=1; (vay 1) 1-1=0; 0-0=0; 1-0=1 Tính toán trong hệ nhị phân 57 1 0 1 + 1 1 1 --------- 1 1 0 0 Tính toán trong hệ nhị phân – Ví dụ 58 1 1 0 0 - 1 1 1 -------------------- 0 1 0 1 Tính toán trong hệ nhị phân – Ví dụ 59 • Sử dụng các chữ số: 0,1,2,3,4,5,6,7 • Dùng n chữ số có thể biểu diễn được 8n giá trị khác nhau: 00...000 = 0 (trong hệ thập phân) ... 77...777 = 8n -1 (trong hệ thập phân) d. Hệ đếm bát phân (Octal System b=8) 60 • Giả sử có số A được biểu diễn theo hệ bát phân như sau: A = an an-1 a1 a0 . a-1 a-2 a-m • Với ai là các chữ số trong hệ bát phân, khi đó giá trị của A là: d. Hệ đếm bát phân (2) 1 1 0 1 2 1 1 0 1 28 8 ... 8 8 8 8 ... 8 8 n n m n n m n i i i m A a a a a a a a A a − − − − − − − − =− = + + + + + + + + =  61 • Ví dụ: 235 . 64 (8) có giá trị như sau: 235 . 64 (8) = 2x8 2 + 3x81 + 5x80 + 6x8-1 + 4x8-2 = 157. 8125 (10) d. Hệ đếm bát phân (3) 62 • Sử dụng 16 ký số: 0,1,2,3,4,5,6,7,8,9,A,B,C ,D,E,F • Các chữ in: A, B, C, D, E, F biểu diễn các giá trị số tương ứng (trong hệ 10) là 10, 11, 12, 13, 14, 15 e. Hệ đếm 16, Hexadecimal, b=16 63 • Giả sử có số A được biểu diễn theo hệ thập lục phân như sau: A = an an-1 a1 a0 . a-1 a-2 a-m Với ai là các chữ số trong hệ thập lục phân, khi đó giá trị của A là: 1 1 0 1 2 1 1 0 1 216 16 ... 16 16 16 16 ... 16 16 n n m n n m n i i i m A a a a a a a a A a − − − − − − − − =− = + + + + + + + + =  e. Hệ đếm 16 (2) 64 • Ví dụ: 34F5C.12D(16) có giá trị như sau: 34F5C.12D(16) = 3x164 + 4x163 + 15x162 + 5x161 + 12x160 +? = 216294(10) + ? e. Hệ đếm 16 (3) Nội dung 1.1. Thông tin và Tin học 1.2. Biểu diễn số trong hệ đếm 1.2.1. Hệ đếm 1.2.2. Chuyển đổi cơ số 1.3. Biểu diễn dữ liệu trong máy tính 65 66 1.2.2. Chuyển đổi cơ số • Trường hợp tổng quát, một số N trong hệ thập phân (N(10)) gồm phần nguyên và phần thập phân. • Chuyển 1 số từ hệ thập phân sang 1 số ở hệ cơ số b bất kỳ gồm 2 bước: – Đổi phần nguyên (của số đó) từ hệ thập phân sang hệ b – Đổi phần thập phân (của số đó) từ hệ thập phân sang hệ cơ số b 67 a. Chuyển đổi phần nguyên • Bước 1:Lấy phần nguyên của N(10) chia cho b, ta được thương là T1 số dư d1. • Bước 2: Nếu T1 khác 0, Lấy T1 chia tiếp cho b, ta được thương số là T2 , số dư là d2 (Cứ làm như vậy cho tới bước thứ n, khi ta được Tn =0) • Bước n: Nếu Tn-1 khác 0, lấy Tn-1 chia cho b, ta được thương số là Tn =0, số dư là dn • Kết quả ta được số N(b) là số tạo bởi các số dư (được viết theo thứ tự ngược lại) trong các bước trên Phần nguyên của N(10) = dndn-1d1 (b) 68 a. Chuyển đổi phần nguyên (2) • Ví dụ: Cách chuyển phần nguyên của số 12.6875(10) sang số trong hệ nhị phân: – Dùng phép chia cho 2 liên tiếp, ta có một loạt các số dư như sau 69 b. Chuyển đổi phần thập phân • Bước1: Lấy phần thập phân của N(10) nhân với b, ta được một số có dạng x1.y1 (x là phần nguyên, y là phần thập phân) • Bước 2: Nếu y1 khác 0, tiếp tục lấy 0.y1 nhân với b, ta được một số có dạng x2.y2 (cứ làm như vậy cho đến khi yn=0) • Bước n: Nếu yn-1 khác 0, nhân 0.yn-1 với b, ta được xn.0 • Kết quả ta được số sau khi chuyển đổi là: Phần thập phân của N(10) = 0.x1x2xn (b) 70 b. Chuyển đổi phần thập phân (2) • Ví dụ: Cách chuyển phần thập phân của số 12.6875(10) sang hệ nhị phân: 71 Ví dụ: Chuyển từ thập phân sang nhị phân • 12.6875(10) = 1100.1011 (2) • 69.25(10) = ?(2) Cách 2: Tính nhẩm • Phân tích số đó thành tổng các lũy thừa của 2, sau đó dựa vào các số mũ để xác định dạng biểu diễn nhị phân → Nhanh hơn. • Ví dụ: 69.25(10) = 64 + 4 + 1+ ¼ = 26 + 22 + 20 + 2-2 = 1000101.01(2) 72 73 Một số ví dụ • Nhị phân → Hexa: 11 1011 1110 0110(2) = ? – 11 1011 1110 0110(2) = 3BE6(16) • Hexa → Nhị phân: AB7(16) = ? – AB7(16) = 1010 1011 0111(2) • Hexa → Thập phân: 3A8C → ? 3A8C (16) = 3 x 16 3 + 10 x 162 + 8 x 161 +12 x 160 = 12288 + 2560 + 128 + 12 = 14988(10) 74 Một số ví dụ (tiếp) • Thập phân → Hexa: 14988 → ? 14988 : 16 = 936 dư 12 tức là C 936 : 16 = 58 dư 8 58 : 16 = 3 dư 10 tức là A 3 : 16 = 0 dư 3 Như vậy, ta có: 14988(10) = 3A8C(16) Bài tập • Chuyển sang hệ nhị phân – 124.75 – 65.125 75 Nội dung 1.1. Thông tin và Tin học 1.2. Biểu diễn số trong hệ đếm 1.3. Biểu diễn dữ liệu trong máy tính 1.3.1. Nguyên lý chung 1.3.2. Biểu diễn số nguyên 1.3.3. Biểu diễn số thực 1.3.4. Biểu diễn ký tự 76 Nội dung 1.1. Thông tin và Tin học 1.2. Biểu diễn số trong hệ đếm 1.3. Biểu diễn dữ liệu trong máy tính 1.3.1. Nguyên lý chung 1.3.2. Biểu diễn số nguyên 1.3.3. Biểu diễn số thực 1.3.4. Biểu diễn ký tự 77 78 1.3.1. Nguyên lý chung • Mọi dữ liệu khi đưa vào máy tính đều phải được mã hóa thành số nhị phân • Các loại dữ liệu: – Dữ liệu nhân tạo: Do con người quy ước – Dữ liệu tự nhiên: • Tồn tại khách quan với con người. • Phổ biến là các tín hiệu vật lý như âm thanh, hình ảnh, 79 a. Nguyên tắc mã hóa dữ liệu • Mã hóa dữ liệu nhân tạo: – Dữ liệu số: Mã hóa theo các chuẩn quy ước – Dữ liệu ký tự: Mã hóa theo bộ mã ký tự • Mã hóa dữ liệu tự nhiên: – Các dữ liệu cần phải số hóa trước khi đưa vào máy tính – Theo sơ đồ mã hóa và tái tạo tín hiệu vật lý 80 b. Các loại dữ liệu trong máy tính • Dữ liệu cơ bản – Số nguyên: Mã nhị phân thông thường (không dấu) và mã bù hai (có dấu) – Số thực: Số dấu chấm động – Ký tự: Bộ mã ký tự • Dữ liệu có cấu trúc – Là tập hợp các loại dữ liệu cơ bản được cấu thành theo một cách nào đó. – Ví dụ: Kiểu dữ liệu mảng, xâu ký tự, tập hợp, bản ghi, Nội dung 1.1. Thông tin và Tin học 1.2. Biểu diễn số trong hệ đếm 1.3. Biểu diễn dữ liệu trong máy tính 1.3.1. Nguyên lý chung 1.3.2. Biểu diễn số nguyên 1.3.3. Biểu diễn số thực 1.3.4. Biểu diễn ký tự 81 82 1.3.2. Biểu diễn số nguyên • Dùng 1 chuỗi bit để biểu diễn. • Đối với số nguyên có dấu, người ta sử dụng bit đầu tiên (Most significant bit) để biểu diễn dấu ‘-‘ và bit này gọi là bit dấu. * Độ dài từ dữ liệu: – Là số bit được sử dụng để mã hóa loại dữ liệu tương ứng – Trong thực tế, độ dài từ dữ liệu thường là bội số của 8. 83 a. Số nguyên không dấu • Dạng tổng quát: giả sử dùng n bit để biểu diễn cho một số nguyên không dấu A: an-1an-2...a3a2a1a0 • Giá trị của A được tính như sau: • Dải biểu diễn của A: – Từ 0 đến 2n-1 1 2 1 0 1 2 1 0 1 0 2 2 ... 2 2 2 n n n n n i i i A a a a a A a − − − − − = = + + + + = Ví dụ 1 • Biểu diễn các số nguyên không dấu sau đây bằng 8 bit: A = 45 B = 156 Giải: A = 45 = 32 + 8 + 4 + 1 = 25 + 23 + 22 + 20 → A = 0010 1101(2) B = 156 = 128 + 16 + 8 + 4 = 27 + 24 + 23 + 22 → B = 1001 1100 (2) 84 Ví dụ 2 • Cho các số nguyên không dấu X, Y được biểu diễn bằng 8 bit như sau: X = 0010 1011 Y = 1001 0110 Giải: X = 0010 1011 = 25 + 23 + 21 + 20 = 32 + 8 + 2 + 1 = 43 Y = 1001 0110 = 27 + 24 + 22 + 21 = 128 + 16 + 4 + 2 = 150 85 86 Trường hợp cụ thể: với n = 8 bit • Dải biểu diễn là [0, 255] 0000 0000 = 0 0000 0001 = 1 0000 0010 = 2 0000 0011 = 3 ..... 1111 1111 = 255 • Trục số học: 0 1 2 3 255 254 ▪ Trục số học máy tính: 0 1 2 255 Với n = 8 bit • 123 + 164 =? • Chú ý trường hợp phép tính vượt quá dải biểu diễn 1111 1111 + 0000 0001 1 0000 0000 KQ sai: 255 + 1 = 0 ? (do phép cộng bị nhớ ra ngoài) 87 Với n = 16 bit, 32 bit, 64 bit • n = 16 bit: – Dải biểu diễn là [0, 65535] • n = 32 bit: – Dải biểu diễn là [0, 232-1] • n = 64 bit: – Dải biểu diễn là [0, 264-1] 88 89 b. Biểu diễn số nguyên có dấu • Sử dụng bit đầu tiên để biểu diễn dấu ‘-‘ và bit này gọi là bit dấu • Sử dụng số bù hai để biểu diễn i. Phần bù là gì? 90 • U: Universal Set (Tập toàn thể) • A  U • Ac = U \ A 91 ii. Số bù chín và số bù mười (hệ thập phân) • Giả sử có 1 số nguyên thập phân A được biểu diễn bởi n chữ số thập phân. Ta có: – Số bù chín của A = (10n – 1) – A – Số bù mười của A = 10n – A – NX: Số bù mười = Số bù chín + 1 • Ví dụ: – Xét n = 4 chữ số, A = 2874 – Số bù chín của A = (104 – 1) – 2874 = 7125 – Số bù mười của A = 104 – 2874 = 7126 iii. Số bù một và số bù hai (hệ nhị phân) • Giả sử có 1 số nguyên nhị phân được biểu diễn bởi n bit. Ta có: – Số bù một của A = (2n - 1) – A – Số bù hai của A = 2n – A – NX: Số bù hai = Số bù một + 1 • Ví dụ – Xét n = 4 bit, A = 0110 – Số bù một của A = (24 - 1) - 0110 = 1001 – Số bù hai của A = 24 - 0110 = 1010 92 93 Nhận xét • Ví dụ (cũ) – Xét n = 4 bit, A = 0110 – Số bù một của A = (24 - 1) - 0110 = 1001 – Số bù hai của A = 24 - 0110 = 1010 →Có thể tìm số bù một của A bằng cách đảo ngược tất cả các bit →Số bù hai = Số bù một + 1 →A + Số bù hai của A = 0 nếu bỏ qua bit nhớ ra khỏi bit cao nhất 94 iv. Biểu diễn số nguyên có dấu • Biểu diễn số nguyên có dấu bằng số bù hai – Dùng n bit để biểu diễn số nguyên có dấu A – Biểu diễn số bù 2 của A (sử dụng n bit) • Ví dụ: Biểu diễn số nguyên có dấu sau đây bằng 8 bit: A = - 70(10) Biểu diễn 70 = 0100 0110 Bù 1: 1011 1001 (nghịch đảo các bit) + 1 Bù 2: 1011 1010 Vậy: A = 1011 1010(2) 95 iv. Biểu diễn số nguyên có dấu (2) • Dạng tổng quát của số nguyên có dấu A: an-1an-2...a2a1a0 • Giá trị của A được xác định như sau: • Dải biểu diễn: [-2n-1, 2n-1-1] 10000000 . 01111111 • Nhận xét: Với số dương, số âm? 2 1 1 0 2 2 n n i n i i A a a − − − = = − + 96 Ví dụ • Xác định giá trị của các số nguyên có dấu 8 bit sau đây: A = 0101 0110 B = 1101 0010 Giải: A = 26 + 24 + 22 + 21 = 64 + 16 + 4 + 2 = +86 B = -27 + 26 + 24 + 21 = = -128 + 64 + 16 + 2 = -46 Trường hợp cụ thể: với n = 8 bit • Dải biểu diễn là [-128, 127] 0000 0000 = 0 0000 0001 = +1 0000 0010 = +2 ....... 01111111 = +127 10000000 = -128 10000001 = -127 ....... 1111 1110 = -2 1111 1111 = -1 • Trục số học máy tính 98 v. Tính toán số học với số nguyên • Cộng/ trừ số nguyên không dấu: – Tiến hành cộng/trừ lần lượt từng bít từ phải qua trái. – Khi cộng/trừ hai số nguyên không dấu n bit ta thu được một số nguyên không dấu n bit. • Nếu tổng của hai số đó lớn hơn 2n -1thì khi đó sẽ tràn số và kết quả sẽ là sai. • Trừ số không dấu thì ta chỉ trừ được số lớn cho số nhỏ. Trường hợp ngược lại sẽ sai 99 Ví dụ: Cộng trừ số nguyên không dấu • Dùng 8 bit để biểu diễn số nguyên không dấu • Trường hợp không xảy ra tràn số (carry- out): – X = 1001 0110 = 150 – Y = 0001 0011 = 19 – S = 1010 1001 = 169 – Cout = 0 • Trường hợp có xảy ra tràn số (carry-out): – X = 1100 0101 = 197 – Y = 0100 0110 = 70 – S = 0000 1011  267 – Cout = 1 → carry-out – (KQ sai = 23 + 21 + 20 = 11) 100 v. Tính toán số học với số nguyên (2) • Cộng số nguyên có dấu • Cộng lần lượt các cặp bit từ phải qua trái, bỏ qua bit nhớ (nếu có). • Cộng hai số khác dấu: kết quả luôn đúng • Cộng hai số cùng dấu: • Nếu tổng nhận được cùng dấu với 2 số hạng thì kết quả là đúng • Nếu tổng nhận được khác dấu với 2 số hạng thì đã xảy ra hiện tượng tràn số học (overflow) và kết quả nhận được là sai Ví dụ: Cộng/trừ số nguyên có dấu X Y 0100 0110 0010 1010 0110 0001 1100 1100 1010 0110 0010 0100 1011 0110 1110 0010 101 102 Ví dụ: Cộng/trừ số nguyên có dấu • VD: không tràn số 103 Ví dụ: Cộng/trừ số nguyên có dấu • Có xảy ra tràn số: v. Tính toán số học với số nguyên (3) • Trừ số nguyên có dấu – Để trừ hai số nguyên có dấu X và Y, cần lấy bù hai của Y tức –Y, sau đó cộng X với –Y tức là: X – Y = X + (-Y). – Cộng lần lượt các cặp bit từ phải qua trái, bỏ qua bit nhớ (nếu có). – Ví dụ: 104 105 v. Tính toán số học với số nguyên (4) • Nhân/chia số nguyên không dấu – Các bước thực hiện như trọng hệ 10 – VD: Phép nhân 1011 (11 cơ số 10) x 1101 (13 cơ số 10) ------------- 1011 0000 1011 1011 -------------- 10001111 (143 cơ số 10) v. Tính toán số học với số nguyên (5) • Chia hai số nguyên không dấu 106 v. Tính toán số học với số nguyên (6) • Nhân số nguyên có dấu: – Bước 1: Chuyển đổi số nhân và số bị nhân thành số dương tương ứng – Bước 2: Nhân 2 số bằng thuật giải nhân số nguyên không dấu → Được tích 2 số dương – Bước 3: Hiệu chỉnh dấu của tích: • Nếu 2 thừa số ban đầu cùng dấu → Kết quả là tích thu được trong bước 2. • Nếu khác dấu → Kết quả là số bù 2 của tích thu được trong bước 2. 107 v. Tính toán số học với số nguyên (7) • Chia số nguyên có dấu: – Bước 1: Chuyển đổi số chia và số bị chia thành số dương tương ứng – Bước 2: Chia 2 số bằng thuật giải chia số nguyên không dấu → Thu được thương và dư đều dương – Bước 3: Hiệu chỉnh dấu của kết quả theo quy tắc sau: 108 109 vi. Tính toán logic với số nhị phân a b a AND b a OR b a XOR b 0 0 0 0 0 0 1 0 1 1 1 0 0 1 1 1 1 1 1 0 • Các phép toán logic với cặp bit nhị phân: 110 vi. Tính toán logic với số nhị phân (2) a NOT a 0 1 1 0 • Các phép toán logic với từng bit nhị phân: 111 vi. Tính toán logic với số nhị phân (3) • 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. 112 Ví dụ: Phép toán với 2 số nhị phân • 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: + AND: xoá một số bit và giữ nguyên 1 số bit còn lại + OR: Thiết lập 1 số bit và giữ nguyên 1 số bit còn lại + XOR: Đảo 1 số bit và giữ nguyên 1 số bit còn lại + NOT: Đảo tất cả các bit Nội dung 1.1. Thông tin và Tin học 1.2. Biểu diễn số trong hệ đếm 1.3. Biểu diễn dữ liệu trong máy tính 1.3.1. Nguyên lý chung 1.3.2. Biểu diễn số nguyên 1.3.3. Biểu diễn số thực 1.3.4. Biểu diễn ký tự 113 114 a. 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 chấm động (Floating Point Number) • Ví dụ: 12.3 = 12.3 * 100 = 123 * 10-1 = 1.23 * 101 115 a. Nguyên tắc chung (2) • 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) 116 Ví dụ - Biểu diễn số thực • 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 = -15x1012 = -15 000 000 000 000 và N2 = M2 x 10 E2 = 314 x 10-9 = 0.000 000 314 117 b. Phép toán với số thực • 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ũ. 118 c. Phép toán với số thực (2) • 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) x R E1-E2 119 c. 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 120 c. Chuẩn IEEE 754/85 (2) Khuôn dạng mã hóa: S e m S e m S e m 31 30 23 22 0 63 62 52 51 0 79 78 64 63 0 121 c. Chuẩn IEEE 754/85 (3) • 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 122 c. Chuẩn IEEE 754/85 (4) • 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 123 Ví dụ 1 • 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 124 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 125 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) X = 0100 0001 0001 1011 0000 0000 0000 0000 126 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) 127 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 +− Nội dung 1.1. Thông tin và Tin học 1.2. Biểu diễn số trong hệ đếm 1.3. Biểu diễn dữ liệu trong máy tính 1.3.1. Nguyên lý chung 1.3.2. Biểu diễn số nguyên 1.3.3. Biểu diễn số thực 1.3.4. Biểu diễn ký tự 128 129 a. 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. 130 a. 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ừ 00(16)  FF(16), bao gồm: – 128 kí tự chuẩn có mã từ 00(16)  7F(16) – 128 kí tự mở rộng có mã từ 80(16)  FF(16) 131 i. Ký tự chuẩn – Bộ mã ASCII • 95 kí tự hiển thị được: Có mã từ 20(16) ÷ 7E(16) – 26 chữ cái hoa Latin 'A' ÷ 'Z' có mã từ 41(16) ÷ 5A(16) – 26 chữ cái thường Latin 'a' ÷ 'z' có mã từ 61(16) ÷ 7A(16) – 10 chữ số thập phân '0' ÷ '9' có mã từ 30(16) ÷ 39(16) – 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à 20(16)) • 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 132 133 Ký tự đ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. 134 Ký tự đ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. 135 Ký tự đ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. 136 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. 137 b. Ký tự mở rộng – Bộ mã 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 • 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. 138 c. 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 139

Các file đính kèm theo tài liệu này:

  • pdfbai_giang_tin_hoc_dai_cuong_chuong_1_thong_tin_va_bieu_dien.pdf