logo

Bài giảng: Tin học đại cương

Trong đời sống hàng ngày, chúng ta tiếp nhận và sử dụng nhiều thông tin. Thông tin đem lại cho chúng ta sự hiểu biết, giúp chúng ta nhận thức đúng đắn về các hiện tượng tự nhiên và xã hội.Cũng nhờ thông tin chúng ta có được những hành động hợp lý nhằm đạt được những mụ đích trong cuộc sống.
BÀI GIẢNG TIN HỌC ĐẠI CƯƠNG Biên soạn : PHAN THỊ HÀ NGUYỄN TIẾN HÙNG Chương 1: Các khái niệm cơ bản Chương 1: CÁC KHÁI NIỆM CƠ BẢN 1.1. THÔNG TIN VÀ XỬ LÝ THÔNG TIN 1.1.1. Khái quát 1.1.1.1. Khái niệm thông tin a. Khái niệm Trong đời sống hàng ngày, chúng ta tiếp nhận và sử dụng nhiều thông tin. Thông tin đem lại cho chúng ta sự hiểu biết, giúp chúng ta nhận thức đúng đắn về các hiện tượng tự nhiên và xã hội; cũng nhờ thông tin ta có được những hành động hợp lý nhằm đạt được những mục đích trong cuộc sống. Chúng ta ai cũng thấy được sự cần thiết của thông tin và cảm nhận được thông tin là gì. Nhưng để đưa ra một định nghĩa chính xác về thông tin thì hầu hết chúng ta đều lúng túng bởi thông tin là một khái niệm khá trừu tượng và nó được thể hiện dưới nhiều dạng thức khác nhau. Tuy nhiên, người ta có thể tạm đưa ra khái niệm sau đây: "Thông tin thường được hiểu là nội dung chứa trong thông báo nhằm tác động vào nhận thức của một số đối tượng nào đó". Thông báo được thể hiện bằng nhiều hình thức: văn bản, lời nói, hình ảnh, cử chỉ...; và các thông báo khác nhau có thể mang cùng một nội dung. Trong lĩnh vực tin học, thông tin có thể được phát sinh, được lưu trữ, được biến đổi trong những vật mang tin; thông tin được biến đổi bởi các dữ liệu và các dữ liệu này có thể được truyền đi, được sao chép, được xử lý hoặc bị phá hủy. Ta có thể lấy một vài ví dụ sau để minh họa Thông báo thể hiện dưới dạng văn bản ví dụ như “Thông tin về một mạng máy tính bị nhiễm virus” - Trong thông báo này, thành phần “Mạng máy tính” đóng vai trò là vật mang tin, còn sự kiện “nhiễm virus” là dữ liệu của thông tin. Hoặc ví dụ “Nhiệt độ đo được ở bệnh nhân là 41oC” - Thông tin này có thể được thể hiện duới dạng văn bản hoặc lời nói. Dữ liệu ở đây là 41oC (nếu được thông báo bằng lời nói thì dữ liệu chính là tín hiệu) và thông tin thu được thông qua dữ liệu cho thấy bệnh nhân bị sốt cao...v.v b. Phân loại thông tin Dựa trên đặc điểm liên tục hay gián đoạn về thời gian của các tín hiệu thể hiện thông tin, ta có thể chia thông tin làm hai loại cơ bản như sau: + Thông tin liên tục: Là thông tin mà các tín hiệu thể hiện loại thông tin này thường là các đại lượng được tiếp nhận liên tục trong miền thời gian và nó được biểu diễn bằng hàm số có biến số thời gian độc lập, liên tục. 3 Chương 1: Các khái niệm cơ bản Ví dụ: Thông tin về mức thuỷ triều của nước biển hay thông tin về các tia bức xạ từ ánh sáng mặt trời… + Thông tin rời rạc: Là thông tin mà các tín hiệu thể hiện loại thông tin này thường là các đại lượng được tiếp nhận có giá trị ở từng thời điểm rời rạc và nó được biểu diễn dưới dãy số. Ví dụ : Thông tin các vụ tai nạn xảy ra trên đoạn đường Nguyễn Trãi. c. Đơn vị đo thông tin Các đại lượng vật lý đều có đơn vị đo chẳng hạn như đơn vị đo khối lượng (kg), đo chiều dài (m) và đo thời gian (giây)...v.v. Để lượng hoá một thông tin ta cũng cần đưa ra một đơn vị đo thông tin. Trong tin học, đơn vị đo thông tin nhỏ nhất là Bit (viết tắt của Binary digit - số nhị phân) - được biểu diễn với 2 giá trị 0 và 1, viết tắt là b. Trong thực tế người ta thường dùng đơn vị lớn hơn là byte. Byte là một nhóm 8 bit trong bảng mã ASCII Ngoài ra người ta còn dùng các bội số của byte như sau: Tên gọi Ký hiệu Giá trị Byte B 8 bit Word w 8,16, 32 hoặc 64 bit KiloByte KB 1024b=210b MegaByte MB 1024Kb=210Kb GigaByte GB 1024Mb=210Mb TeraByte TB 1024Gb=210Gb d. Mã hoá thông tin rời rạc Mã hóa thông tin là quá trình biến đổi thông tin từ dạng biểu diễn thông thường sang một dạng khác theo quy ước nhất định. Quá trình biến đổi ngược lại của mã hóa thông tin được gọi là phép giải mã. Ví dụ: Ta có 1 tập quản lý hồ sơ sinh viên. Nếu ta quản lý bằng tên thì sẽ xảy ra rất nhiều trường hợp tên bị trùng nhau. Nếu ta thêm các yếu tố khác kèm theo như địa chỉ, ngày sinh, quê quán...v.v thì việc quản lý trở nên rất rườm rà, phức tạp mà vẫn không loại trừ được khả năng trùng nhau. Nếu ta gán cho mỗi một sinh viên 1 mã số ID khác nhau thì việc quản lý hồ sơ sẽ trở nên thuận tiện hơn nhiều. Từ mã số ID, ta có thể tìm ra số liệu về sinh viên tương ứng. Như vậy, quá trình gán mã số ID cho mỗi hồ sơ sinh viên được gọi là mã hóa; còn quá trình dựa trên mã số ID để xác định thông tin về sinh viên gọi là giải mã. 4 Chương 1: Các khái niệm cơ bản Tất cả các thông tin ở dạng văn bản (text), chữ (character), số (number), ký hiệu (symbol), đồ họa (graphic), hình ảnh (image) hoặc âm thanh (sound)... đều được biểu diễn bằng các tín hiệu (signals). Các tín hiệu biểu diễn này có thể là liên tục hay rời rạc và nó được đưa vào xử lý thông qua các hệ thống máy tính. Đối với hệ thống máy tính tương tự (Analog Computer), thông tin được đưa vào xử lý chủ yếu là môt số các tín hiệu liên tục như tín hiệu điện, âm thanh... Trong khi đó, hầu hết các dữ liệu mà chúng ta có được thường ở dạng các tín hiệu rời rạc và nó được xử lý trên các hệ thống máy tính số. Do đó, khi đưa các tín hiệu này vào máy tính, chúng được mã hóa theo các tín hiệu số (digital signal) nhằm giúp máy tính có thể hiểu được thông tin đưa vào. Ðây là cơ sở thực tiễn của nguyên lý mã hoá thông tin rời rạc. Nguyên lý này tập trung các điểm chủ yếu sau: Tín hiệu liên tục có thể xem như một chuỗi xấp xỉ các tín hiệu rời rạc với chu kỳ lấy mẫu nhỏ ở mức độ chấp nhận được. Tín hiệu rời rạc có thể được đặc trưng qua các bộ ký hiệu hữu hạn (chữ cái, chữ số, dấu, ...) gọi là phép mã hóa (encode). Mọi phép mã hóa đều có thể xây dựng trên bộ ký hiệu các chữ số, đặc biệt chỉ cần bộ ký hiệu gồm 2 chữ số là 0 và 1. Ngược với phép mã hoá gọi là phép giải mã (decode). Chu kỳ lấy mẫu Tg Các mẫu tín hiệu số Tín hiệu số Tín hiệu rời rạc là tín hiệu có trục thời gian bị rời rạc hoá với chu kỳ lấy mẫu là Ts = 1/Fs, trong đó Fs là tần số lấy mẫu. Ta có thể xét một số ví dụ như tiếng nói con người thông thường nằm trong dải âm tần từ 0,3 kHz đến 3,4 kHz; khi tiếng nói con người được truyền đưa trên mạng nó sẽ được rời rạc hóa bằng tần số lấy mẫu là 8 kHz nhưng người nghe vẫn không cảm nhận được điều này. Một ví dụ khác về thông tin rời rạc là hình trên phim khi được chiếu lên màn ảnh là các ảnh rời rạc xuất hiện với tốc độ 25 ảnh/giây. Mắt người không phân biệt sự rời rạc này nên có cảm tưởng hình ảnh là liên tục. Mã hoá thông tin rời rạc là một khái niệm rất căn bản và ứng dụng nhiều trong kỹ thuật máy tính điện tử. 1.1.1.2. Xử lý thông tin a. Sơ đồ tổng quát của một quá trình xử lý thông tin Quá trình xử lý thông tin chính là sự biến đổi những dữ liệu đầu vào ở dạng rời rạc thành thông tin đầu ra ở dạng chuyên biệt phục vụ cho những mục đích nhất định. Mọi quá trình xử lý 5 Chương 1: Các khái niệm cơ bản thông tin cho dù thực hiện bằng máy tính hay bằng con người đều phải tuân thủ theo chu trình sau: Dữ liệu (data) được nhập ở đầu vào (input). Sau đó, máy tính hay con người sẽ thực hiện những quá trình xử lý để xuất thông tin ở đầu ra (output). Quá trình nhập dữ liệu, xử lý và xuất thông tin đều có thể được lưu trữ để phục vụ cho các quá trình tiếp theo khác. NHẬP DỮ LIỆU XỬ LÝ XUẤT DỮ LIỆU (INPUT) (PROCESSING) (OUTPUT) LƯU TRỮ (STORAGE) Mô hình tổng quát quá trình xử lý thông tin b. Xử lý thông tin bằng máy tính điện tử (MTĐT) Máy tính điện tử là một hệ thống xử lý thông tin tự động dựa trên nguyên tắc chung của quá trình xử lý thông tin. Mặc dù khả năng tính toán của máy tính vượt xa so với khả năng tính toán của con người và các phương tiện khác; tuy nhiên, máy tính sẽ không tự nó đưa ra quyết định khi nào phải làm gì mà nó chỉ có thể hoạt động được nhờ sự chỉ dẫn của con người - tức là con người phải cung cấp đầy đủ ngay từ đầu cho MTĐT các mệnh lệnh, chỉ thị để hướng dẫn MTĐT theo yêu cầu đề ra. Tổng quát quá trình xử lý thông tin trên MTĐT có thể được tóm tắt như sau: + Trước hết đưa chương trình cần thực hiện (do con người lập sẵn) vào bộ nhớ của máy tính + Máy bắt đầu xử lý, dữ liệu nhập từ môi trường ngoài vào bộ nhớ (Thông qua thiết bị nhập dữ liệu). + Máy thực hiện thao tác dữ liệu và ghi kết quả trong bộ nhớ. + Đưa kết quả từ bộ nhớ ra bên ngoài nhờ các thiết bị xuất (máy in, màn hình). Máy tính điện tử có một số đặc điểm chính như sau: + Tốc độ xử lý nhanh, độ tin cậy cao. + Khả năng nhớ rất lớn. + Tham số về tốc độ thường được tính bằng số phép tính thực hiện trong một giây, còn khả năng nhớ đựơc tính theo dung lượng bộ nhớ trong đo bằng KB, MB. 1.1.1.3. Tin học và các lĩnh vực nghiên cứu của tin học a. Tin học là gì ? Tin học là một ngành khoa học công nghệ nghiên cứu các phương pháp xử lý thông tin một cách tự động dựa trên các phương tiện kỹ thuật mà chủ yếu hiện tại là máy tính điện tử. 6 Chương 1: Các khái niệm cơ bản b. Các lĩnh vực nghiên cứu của tin học : Từ các định nghĩa trên thấy tin học gồm hai khía cạnh nghiên cứu: - Khía cạnh khoa học: nghiên cứu về các phương pháp xử lý thông tin tự động. - Khía cạnh kỹ thuật: nhằm vào 2 kỹ thuật phát triển song song - đó là : + Kỹ thuật phần cứng (hardware engineering): nghiên cứu chế tạo các thiết bị, linh kiện điện tử, công nghệ vật liệu mới... hỗ trợ cho máy tính và mạng máy tính đẩy mạnh khả năng xử lý toán học và truyền thông thông tin. + Kỹ thuật phần mềm (software engineering): nghiên cứu phát triển các hệ điều hành, ngôn ngữ lập trình cho các bài toán khoa học kỹ thuật, mô phỏng, điều khiển tự động, tổ chức dữ liệu và quản lý hệ thống thông tin. c. Ứng dụng của tin học Tin học hiện đang được ứng dụng rộng rãi trong tất cả các ngành nghề khác nhau của xã hội từ khoa học kỹ thuật, y học, kinh tế, công nghệ sản xuất đến khoa học xã hội, nghệ thuật,... như: - Tự động hóa văn phòng - Quản trị kinh doanh - Thống kê - An ninh, quốc phòng - Công nghệ thiết kế, Giáo dục - Y học, Công nghệ in - Nông nghiệp, Nghệ thuật, giải trí, v.v.... 1.1.2. Biểu diễn thông tin trong máy tính 1.1.2.1. Hệ đếm và logic mệnh đề a. Hệ đếm Hệ đếm là tập hợp các ký hiệu và qui tắc sử dụng tập ký hiệu đó để biểu diễn và xác định các giá trị các số. Mỗi hệ đếm có một số ký số (digits) hữu hạn và 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. Các hệ đếm phổ biến hiện nay hay dùng là hệ đếm La mã và hệ đếm thập phân, hệ đếm nhị phân, hệ đếm bát phân, hệ đếm thập lục phân. Nhưng trong lĩnh vực kỹ thuật hiện nay phổ biến 4 hệ đếm như sau : Hệ đếm Cơ số Ký số và trị tuyệt đối Hệ nhị phân 2 0, 1 Hệ bát phân 8 0, 1, 2, 3, 4, 5, 6, 7 Hệ thập phân 10 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Hệ thập lục phân 16 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F 7 Chương 1: Các khái niệm cơ bản */ Hệ đếm thập phân (decimal system) Hệ đếm thập phân hay hệ đếm cơ số 10 là một trong những phát minh của người Ả rập cổ, bao gồm 10 ký số theo ký hiệu sau: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Qui tắc tính giá trị của hệ đếm này là mỗi đơn vị ở một hàng bất kỳ có giá trị bằng 10 đơn vị của hàng kế cận bên phải. (Ở đây b = 10). Bất kỳ số nguyên dương trong hệ thập phân được thể hiện như là một tổng các chuỗi các ký số thập phân nhân với 10 lũy thừa, trong đó số mũ lũy thừa được tăng thêm 1 đơn vị kể từ số mũ lũy thừa phía bên phải nó. Số mũ lũy thừa của hàng đơn vị trong hệ thập phân là 0. Ví dụ: Số 5246 có thể được thể hiện như sau: 5246 = 5 x 103 + 2 x 102 + 4 x 101 + 6 x 100 = 5 x 1000 + 2 x 100 + 4 x 10 + 6 x 1 Thể hiện như trên gọi là ký hiệu mở rộng của số nguyên. Vì 5246 = 5000 + 200 + 40 + 6 Như vậy, trong số 5246: ký số 6 trong số nguyên đại diện cho giá trị 6 đơn vị (1s), ký số 4 đại diện cho giá trị 4 chục (10s), ký số 2 đại diện cho giá trị 2 trăm (100s) và ký số 5 đại diện cho giá trị 5 ngàn (1000s). Nghĩa là, số lũy thừa của 10 tăng dần 1 đơn vị từ trái sang phải tương ứng với vị trí ký hiệu số, 100 = 1 101 = 10 102 = 100 103 = 1000 104 = 10000 ... Mỗi ký số ở thứ tự khác nhau trong số sẽ có giá trị khác nhau, ta gọi là giá trị vị trí (place value). Phần phân số trong hệ thập phân sau dấu chấm phân cách (theo qui ước của Mỹ) thể hiện trong ký hiệu mở rộng bởi 10 lũy thừa âm tính từ phải sang trái kể từ dấu chấm phân cách Ví dụ: 254.68 = 2x102 + 5x101 + 4x100 + 6x10-1 + 8x10-2 6 8 = 200+50+4+ + 10 100 Tổng quát, hệ đếm cơ số b (b≥2, b là số nguyên dương) mang tính chất sau: · Có b ký số để thể hiện giá trị số. Ký số nhỏ nhất là 0 và lớn nhất là b-1. · Giá trị vị trí thứ n trong một số của hệ đếm bằng cơ số b lũy thừa n : bn Số N(b) trong hệ đếm cơ số (b) thể hiện : N(b) = anan-1an-2…a1a0a-1a-2…a-m trong đó, số N(b) có n+1 ký số chẵn ở phần nguyên và m ký số lẻ, sẽ có giá trị là: N(b) = an.bn + an-1.bn-1 + an-2.bn-2 + …+a1b1 + a0.b0 + a-1.b-1 + a-2.b-2 +…+ a-m.b-m Hay n N(b) = ∑ a ..b i =−m i i * Hệ đếm nhị phân (binary number system) 8 Chương 1: Các khái niệm cơ bản Với b = 2, chúng ta có hệ đếm nhị phân. Ðây là hệ đếm đơn giản nhất với 2 chữ số là 0 và 1. Mỗi chữ số nhị phân gọi là BIT (viết tắt từ chữ BInary digiT). Hệ nhị phân tương ứng với 2 trạng thái của các linh kiện điện tử trong máy tính - cụ thể: đóng (có điện) ký hiệu là 1 và tắt (không điện) ký hiệu là 0. Vì hệ nhị phân chỉ có 2 trị số là 0 và 1, nên khi muốn diễn tả một số lớn hơn, hoặc các ký tự phức tạp hơn thì cần kết hợp nhiều bit với nhau. Ta có thể chuyển đổi hệ nhị phân theo hệ thập phân quen thuộc. Ví dụ 3.6: Số 11101.11(2) sẽ tương đương với giá trị thập phân là : vị trí dấu chấm cách Số nhị phân: 1 1 1 0 1 1 1 Số vị trí: 4 3 2 1 0 -1 -2 Trị vị trí: 24 23 22 21 20 2-1 2-2 Hệ 10 là: 16 8 4 2 1 0.5 0.25 như vậy: 11101.11(2) = 1x16 + 1x8 + 1x4 + 0x2 + 1x1 + 1x0.5 + 1x0.25 = 29.75 (10) tương tự số 10101 (hệ 2) sang hệ thập phân sẽ là: 10101(2) = 1x24 + 0x23 + 1x22 + 0x21 + 1x20 = 8 + 0 + 4 + 0 + 1 = 13(10) */ Hệ đếm La mã Hệ đếm La mã được xem như là hệ đếm có tính hệ thống đầu tiên của con người. Hệ đếm La mã sử dụng các ký hiệu ứng với các giá trị như sau: I = 1 V = 5 X = 10 L = 50 C = 100 D = 500 M = 1000 Ký số La mã có một số qui tắc sau: - Số lần n liên tiếp kế nhau của mỗi ký hiệu thể hiện giá trị ký hiệu tăng lên n lần. Số lần n chỉ là 1 hoặc 2 hoặc 3. Riêng ký hiệu M được phép xuất hiện 4 lần liên tiếp. Ví dụ: III = 3 x 1 = 3; XX = 2 x 10 = 20; MMMM = 4000, ... - Hai ký hiệu đứng cạnh nhau, nếu ký hiệu nhỏ hơn đứng trước thì giá trị của chúng sẽ là hiệu số của giá trị ký hiệu lớn trừ giá trị ký hiệu nhỏ hơn. Ví dụ: IV = 5 -1 = 4; IX = 10 - 1 = 9; CD = 500 - 100 = 400; CM = 1000 - 100 = 900 - Hai ký hiệu đứng cạnh nhau, nếu ký hiệu nhỏ đứng sau thì giá trị của chúng sẽ là tổng số của 2 giá trị ký hiệu. Ví dụ: XI = 10 + 1 = 11; DCC = 500 + 100 + 100 = 700 Giá trị 3986 được thể hiện là: MMMCMLXXXVI - Ðể biểu thị những số lớn hơn 4999 (MMMMCMXCIX), chữ số La mã giải quyết bằng cách dùng những vạch ngang đặt trên đầu ký tự. Một vạch ngang tương đương với việc nhân giá 9 Chương 1: Các khái niệm cơ bản trị của ký tự đó lên 1000 lần. Ví dụ M = 1000x1000 = 106. Như vậy, trên nguyên tắc chữ số La mã có thể biểu thị các giá trị rất lớn. Tuy nhiên trong thực tế người ta thường sử dụng 1 đến 2 vạch ngang là nhiều. Hệ đếm La mã hiện nay ít được sử dụng trong tính toán hiện đại. */ Hệ đếm bát phân (octal number system) Nếu dùng 1 tập hợp 3 bit thì có thể biểu diễn 8 trị số khác nhau: 000, 001, 010, 011, 100, 101, 110, 111. Các trị số này tương đương với 8 trị số trong hệ thập phân là 0, 1, 2, 3, 4, 5, 6, 7. Tập hợp các chữ số này gọi là hệ bát phân, là hệ đếm với b = 8 = 23. Trong hệ bát phân, trị số vị trí là lũy thừa của 8. Ví dụ: 235 . 64(B) = 2x82 + 3x81 + 5x80 + 6x8-1 + 4x8-2 = 157.8125(10) */ Hệ đếm thập lục phân (hexa-decimal number system) Hệ đếm thập lục phân là hệ cơ số b = 16 = 24 tương đương với tập hợp 4 chữ số nhị phân (4 bit). Khi thể hiện ở dạng hexa-decimal, ta có 16 ký tự gồm 10 chữ số từ 0 đến 9, và 6 chữ in A, B, C, D, E, F để biểu diễn các giá trị số tương ứng là 10, 11, 12, 13, 14, 15. Với hệ thập lục phân, trị vị trí là lũy thừa của 16. Ví dụ: 34F5C(16) = 3X164 + 4x163 + 15x162 + 5x161 + 12x160 = 216294(10) Ghi chú: Một số chương trình qui định viết số hexa phải có chữ H ở cuối chữ số. Ví dụ: Số 15 viết là FH. Bảng qui đổi tương đương 16 chữ số đầu tiên của 4 hệ đếm Hệ 10 Hệ 2 Hệ 8 Hệ 16 0 0000 00 0 1 0001 01 1 2 0010 02 2 3 0011 03 3 4 0100 04 4 5 0101 05 5 6 0110 06 6 7 0111 07 7 8 1000 10 8 9 1001 11 9 10 1010 12 A 11 1011 13 B 12 1100 14 C 13 1101 15 D 14 1110 16 E 15 1111 17 F *Chuyển đổi số giữa các hệ đếm Chuyển một số từ hệ cơ số L=10 sang hệ cơ số H: 10 Chương 1: Các khái niệm cơ bản Ta lưu ý rằng các hệ cơ số ta xét đều lấy 1 làm đơn vị, vì vậy một số bất kỳ dù biểu diễn ở hệ cơ số nào thì phần thập phân và phần nguyên đều không đổi. Nghĩa là dù biến đổi sang hệ cơ số nào đi nữa thì phần thập phân cũng chỉ chuyển sang phần thập phân, phần nguyên sang phần nguyên. Giả sử ta có một số có phần thập phân b=k+d trong hệ cơ số L trong đó k là phần nguyên trước dấu phẩy và d là phần thập phân sau dấu phẩy. Ta sẽ chuyển đổi riêng từng phần theo quy tắc sau: - Với phần nguyên: Lấy k chia liên tiếp cho H cho đến khi thương số bằng 0, phép chia thứ i có số dư bi là chữ số trong hệ cơ số H, i = 0,1,2,...,n , khi đó bn bn-1 bn-2... b0 là phần nguyên của số b trong hệ cơ số H. - Với phần thập phân: Lấy phần thập phân của d nhân liên tiếp với H cho đến khi kết quả phép nhân không còn phần thập phân hoặc đạt được độ chính xác ta cần, mỗi lần nhân ta lấy phần nguyên của kết quả là cj là chữ số trong hệ cơ số H, j = 1,2,...,m. Khi đó số . c1 c2 ...cm chính là phần thập phân của số nhị phân cần tìm. (Chúng ta lưu ý là sau mỗi lần nhân ta chỉ lấy phần thập phân để nhân tiếp với H, phần nguyên ở đây được hiểu là phần bên trái dấu chấm thập phân). Ví dụ: Cho số thập phân 14.125 tìm số nhị phân tương ứng. Ta có k = 14, d = 0.125 Chuyển đổi phần nguyên 14 Chia 2 Dư 14 0 7 3 1 1 1 0 Chuyển đổi phần thập phân 0.125 Nhân 2 Phần nguyên 0.125 0.25 0 0.5 0 1 1 Vậy 14.125=1110.001 Chuyển đổi 0.2 sang hệ nhị phân: Nhân 2 Phần nguyên 0.2 0.4 0 0.8 0 1 1 ... Ta thấy rằng số 0.2 trong hệ cơ số 2 là một số thập phân vô hạn tuần hoàn 0.210=0.(0011)2 11 Chương 1: Các khái niệm cơ bản Chuyển từ hệ bất kỳ sang hệ thập phân Giả sử ta có biểu diễn số B theo cơ số H là B= bn bn-1 bn-2 ...b1 b0 .c1 c2 cn...cm Vì ta đã quen tính toán với hệ cơ số 10 nên ta có thể chuyển đổi trực tiếp theo công thức sau: B= bnxHn + bn-1xHn-1 + bn-2xHn-2 +...b1xH + b0+ c1xH-1 + c2xH-2 +...+ cmxH-m (Ta hoàn toàn có thể áp dụng quy tắc đã nêu: chia lấy phần dư, nhân lấy phần nguyên... để tìm biểu diễn của B trong hệ thập phân) Chuyển từ hệ nhị phân sang bát phân (hoặc thập lục phân) Qui tắc: Nhóm các Bit thành từng nhóm 3 Bit (4 Bit - cho hệ thập lục phân) bắt đầu từ Bit ngoài cùng bên phải, tính giá trị số học học quy luật giá trị vị trí riêng cho từng nhóm 3 (hay 4) Bit, viết các giá trị này liền nhau. Ví dụ cho số nhị phân 11110101 chuyển số này sang dạng bát phân và thập lục phân. (11 110 101) -> 365 trong hệ bát phân là số 365 (1111 0101) -> 15 5 -> F5 trong hệ thập lục phân là số F5 Khi cần chuyển ngược lại chúng ta làm theo các bước tương tự Chuyển đổi hệ thống số dựa trên hệ 8 và hệ 16 Trong phần bài giảng, chúng ta đã làm quen với cách chuyển đổi giữa hệ 2 và hệ 10. Tuy nhiên, ở những trị số lớn và dài thì làm cách trên trở nên rất phức tạp và dễ nhầm lẫn, ví dụ : 101110110101(2) = ?(10) 2997(10) = ?(12) Trong ví dụ thứ nhất ta phải liên tiếp làm nhiều phép nhân và ở ví dụ thứ hai, ta lại thực hiện nhiều phép chia liên tiếp. Người ta đưa ra hệ thống số trung gian là hệ 8 và hệ 16 để giải quyết: Hệ 16 Hệ 2 Hệ 10 Hệ 8 Thông qua hệ 8 và hệ 16 để chuyển đổi hệ 2 sang hệ 10 Chia số nhị phân làm thành từng bộ 3 số và 4 số liên tiếp theo thứ tự tương ứng với cách thông qua hệ 8 và hệ 16 và dùng phương pháp nhân với các thừa số bên trên tương ứng rồi cộng lại. Ví dụ: 101110110101(2) = ? (10) THÔNG QUA HỆ 8: Chia số nhị phân từng bộ 3 số: 12 Chương 1: Các khái niệm cơ bản 83 82 81 80 22 21 20 22 21 20 22 21 20 22 21 20 1 0 1 1 1 0 1 1 0 1 0 1 5 6 6 5 Chú ý: 5 = 1x22 + 0x21 + 1x20 và 6 = 1x22 + 1x21 + 0x20 Kết quả: 101110110101(2) = 5x83 + 6x82 + 6x81 + 5x80 = 5x512 + 6x64 + 6x8 + 5x1 = 2997(10) THÔNG QUA HỆ 16: Chia số nhị phân thành bộ 4 số 16 16 16 2 1 0 23 22 21 20 23 22 21 20 23 22 21 20 1 0 1 1 1 0 1 1 0 1 0 1 11 11 5 Chú ý: 11 = 1x23 + 0x22 + 1x21 + 1x20 và 5 = 0x23 + 1x22 + 0x21 + 1x20 Kết quả: 101110110101(2) = 11x162 + 11x161 + 5x160 = 11x256 + 11x16 +5x1 = 2997(10) Thông qua hệ 8 và hệ 16 để chuyển hệ 10 sang hệ 2 Cách làm tương tự như trên, nhưng thay phép nhân thành phép chia và lấy các số dư của phép chia ngược từ dưới lên trên để chuyển đổi. Ví dụ: 2997(10) = ? (2) THÔNG QUA HỆ 8: 2997 8 8 Số dư 5 374 46 8 6 8 6 0 5 Ta có: 5 (hệ 8) = 4 + 1 = 1x22 + 0x21 + 1x20 = 101(2) Tương tự: 6 (hệ 8) = 4+2 = 1x22 + 1x21 + 0x20 = 110(2) 13 Chương 1: Các khái niệm cơ bản Suy ra: 2997(10) = 101 110 110 101(2) THÔNG QUA HỆ 16: 2997 16 5 187 16 5 11 11 16 B 11 0 B Số dư Ta có : 2997 (10) = BB5(16) B (hệ 16) = 11 = 8 + 2 +1 = 1x23 + 0x22 + 1x21 + 1x20 = 1011 (hệ 2) 5 (hệ 16) = 4 + 1 = 0x23 + 1x22 + 0x21 + 1x20 = 0101 (hệ 2) Suy ra: 2997(10) = BB6(16) = 1011 1011 0101(2) Chuyển hệ 8 sang hệ 16 và ngược lại: Ta có thể dùng hệ 10 hoặc hệ 2 làm trung gian để chuyển đổi hệ 8 sang hệ 16 và ngược lại. Thông thường dùng hệ 2 để trung chuyển có thuận lợi hơn. Ví dụ: 5665(8) = ?(16) Cách làm như sau: Bước 1: Chuyển hệ 8 thành hệ 2: biểu thị từng trị số trong hệ 8 thành từng nhóm 3 số và ghép các nhóm đó lại. 5 (hệ 8) = 4 + 1 + 0 = 1x22 + 0x21 + 1x20 = 101 (hệ 2) 6 (hệ 8) = 4 + 2 + 2 = 1x22 + 1x21 + 0x20 = 110 (hệ 2) Vậy 5665(8) = 101 110 110 101(2) Bước 2: Chia dãy số hệ 2 vừa có được thành các bộ 4 số và chuyển các bộ đó sang hệ 16 5665(8) = 101 110 110 101(2) = 1011 1011 0101(2) Vì: 1011(2) = 1x23 + 0x22 + 1x21 + 1x20 = 8 + 0 + 2 + 1 = 11 = B(16) 0101(2) = 0x23 + 1x22 + 0x21 + 1x20 = 0 + 4 + 0 + 1 = 5(16) Nên: 1011 1011 1010 Vậy: B B 5 5665(8) = BB5(16) Việc chuyển từ hệ 16 sang hệ 8 ta cũng tiến hành 2 bước như vậy. b. Số học nhị phân 14 Chương 1: Các khái niệm cơ bản Trong số học nhị phân chúng ta cũng có 4 phép toán cơ bản như trong số học thập phân là cộng, trừ, nhân và chia. Qui tắc của 2 phép tính cơ bản cộng và nhân: X Y X+Y X*Y 0 0 0 0 0 1 1 0 1 0 1 0 1 1 10 1 Ghi chú: Với phép cộng trong hệ nhị phân, 1 + 1 = 10, số 10 (đọc là một - không) chính là số 2 tương đương trong hệ thập phân. Viết 10 có thể hiểu là viết 0 nhớ 1. Một cách tổng quát, khi cộng 2 hay nhiều chữ số nếu giá trị tổng lớn hơn cơ số b thì ta viết phần lẻ và nhớ phần lớn hơn sang bên trái cạnh nó. Ví dụ: Cộng 2 số 0101 + 1100 = ? 0101 tương đương số 5 trong hệ 10 `+ 1100 tương đương số 12 trong hệ 10 10001 tương đương số 17 trong hệ 10 Ví dụ: Nhân 2 số 0110 x 1011 = ? 0110 tương đương số 6 trong hệ 10 x1011 tương đương số 11 trong hệ 10 0110 0110 + 0000 0110 tương đương số 66 trong hệ 10 1000010 Phép trừ và phép chia là các phép toán đặc biệt của phép cộng và phép nhân. Ví dụ: Trừ hai số 101 tương đương số 5 trong hệ 10 − 011 tương đương số 3 trong hệ 10 010 tương đương số 2 trong hệ 10 Ghi chú: 0 – 1 = -1 (viết 1 và mượn 1 ở hàng bên trái). Ví dụ: Chia hai số 110 10 tương đương số 6 và trong hệ 10 - 10 11 010 15 -10 00 Chương 1: Các khái niệm cơ bản tương đương số 3 trong hệ 10 Qui tắc 1: Khi nhân một số nhị phân với 2n ta thêm n số 0 vào bên phải số nhị phân đó. Ví dụ : 1011x23 = 1011000 Qui tắc 2: Khi chia một số nguyên nhị phân cho 2n ta đặt dấu chấm ngăn ở vị trí n chữ số bên trái kể từ số cuối của số nguyên đó. Ví dụ : 100111110:23 = 100111.110 c. Mệnh đề logic Mệnh đề logic là mệnh đề chỉ nhận một trong 2 giá trị : Ðúng (TRUE) hoặc Sai (FALSE), tương đương với TRUE = 1 và FALSE = 0. Qui tắc: TRUE = NOT FALSE và FALSE = NOT TRUE Phép toán logic áp dụng cho 2 giá trị TRUE và FALSE ứng với tổ hợp AND (và) và OR (hoặc) như sau: x y x AND y x OR y TRUE TRUE TRUE TRUE TRUE FALSE FALSE TRUE FALSE TRUE FALSE TRUE FALSE FALSE FALSE FALSE Ct1 Ct1 Ct2 Ký hiệu: Ct2 Ct: công tắc Nguồn điện Đèn + : đóng (on) - : ngắt (off) Đèn sáng = [ct1+] AND [ct2+] Đèn sáng = [ct1+] OR [ct2+] Đèn tắt = [ct1-] OR [ct2-] Đèn tắt = [ct1-] AND [ct2-] 1.1.2.2. Biểu diễn dữ liệu Dữ liệu số trong máy tính gồm có số nguyên và số thực. a/ Biểu diễn số nguyên 16 Chương 1: Các khái niệm cơ bản Số nguyên gồm số nguyên không dấu và số nguyên có dấu. * Số nguyên không dấu là số không có bit dấu như 1 byte = 8 bit, có thể biểu diễn 26 = 256 số nguyên dương, cho giá trị từ 0 (0000 0000) đến 255 (1111 1111). * Số nguyên có dấu thể hiện trong máy tính ở dạng nhị phân là số dùng 1 bit làm bít dấu, người ta qui ước dùng bit ở hàng đầu tiên bên trái làm bit dấu (S): 0 là số dương và 1 cho số âm. Ðơn vị chiều dài để chứa thay đổi từ 2 đến 4 bytes. Bit dấu S 2 bytes = 16 bit 15 … … … 4 3 2 1 0 4 bytes = 32 bit 31 Ta thấy, với chiều dài 16 bit : bit đầu là bit dấu và 15 bit sau là bit số Trị dương lớn nhất của dãy 2 bytes sẽ là: 01111111 11111111 = 215 - 1 Trị âm lớn nhất trong dãy 2 bytes là -215 Ðể thể hiện số âm trong hệ nhị phân ta có 2 khái niệm: - Số bù 1: Khi đảo ngược tất cả các bit của dãy số nhị phân: 0 thành 1 và 1 thành 0, dãy số đảo đó gọi là số bù 1 của số nhị phân đó. Ví dụ: N = 0101 = 5(!0) Số bù 1 của N là: 1010 - Số bù 2: Số bù 2 của số N là số đảo dấu của nó (-N). Trong hệ nhị phân, số bù 2 được xác định bằng cách lấy số bù 1 của N rồi cộng thêm 1. Ví dụ: N = 0101 = 5(10) Số bù 1 của N là: 1010 + 0001 Số bù 2 của N là: 1011 = -5(10) = - N b/ Biểu diễn số thực Ðối với các số thực (real number) là số có thể có cả phần lẻ hoặc phần thập phân. Trong máy tính, người ta biễu diễn số thực với số dấu chấm tĩnh (fixed point number) và số dấu chấm động (floating point number). */ Số dấu chấm tĩnh: thực chất là số nguyên (integers) là những số không có chấm thập phân */ Số dấu chấm động: là số có chữ số phần lẻ không cố định. Mỗi số như vậy có thể trữ và xử lý trong máy tính ở dạng số mũ. Ví dụ: 499,000,000 = 499 x 106 = 49.9 x107 = 0.499 x 109 = 0.499E + 09 0.000 123 = 123 x 10-6 = 1.23 x 10-4 = 0.123 x 10-3 = 0.123E – 03 17 Chương 1: Các khái niệm cơ bản Ghi chú: Dấu chấm thể hiện trong máy tính để phân biệt phần lẻ, dấu phẩy tượng trưng cho phần ngàn, được viết theo qui ước của Mỹ. Tổng quát, số dấu chấm động được biểu diễn theo 3 phần : - phần dấu S (sign) : 0 cho + và 1 cho - - phần định trị m (mantissa) - phần mũ e (exponent), có thể là số nguyên dương (+) hoặc âm (-) với một số X bất kỳ, có thể viết : X=±m.be=±mEe Trong đó, b là cơ số qui ước, trị số mũ e có thể thay đổi tùy theo số vị trí cần dịch chuyển dấu chấm để có lại trị số ban đầu. Khi dịch chuyển dấu chấm sang ±n vị trí về phía trái (+n) hay phía phải (-n) thì số mũ e thay đổi lên ±n đơn vị tương ứng Ðể biểu diễn số có dấu chấm động, người ta dùng dãy 32 bit với hệ thống cơ số 16. Trong đó, 1 bit cho phần dấu, 7 bit cho phần mũ để biểu diễn phần đặc trị C (characteristic) và 24 bit cho phần định trị m. S C m dấu Phần mũ Phần định trị 1 bit 7 bit 24 bit Phần mũ có 7 bit = 27 = 128 đặc trị C, tương ứng phần mũ e từ -64 đến +63 C = số mũ biểu diễn + 64 Phần mũ e - - - ... -2 -1 0 1 ... 62 63 64 63 62 Ðặc trị C 0 1 2 ... 62 63 64 65 ... 126 127 Ví dụ: A = -419.8125(10) = -110100011.1101(2) = -0.1101000111101 x 29 Số mũ của A là 9, số đặc trị C là: C = 9 + 64 = 73 = 1001001(2) Trong máy tính, số A sẽ được trữ theo vị trí nhớ 32 bit như sau : Dấu A đặc trị C (7bit) định trị m (24 bit) Dấu A Đặc trị C (7 bit) định trị m (24 bit) 1 1 0 0 1 0 0 1 1 1 0 1 0 0 0 1 1 1 1 0 1 0 0 0 … 0 0 c. Biểu diễn ký tự 18 Chương 1: Các khái niệm cơ bản Ðể có thể biễu diễn các ký tự như chữ cái in và thường, các chữ số, các ký hiệu... trên máy tính và các phương tiện trao đổi thông tin khác, người ta phải lập ra các bộ mã (code system) qui ước khác nhau dựa vào việc chọn tập hợp bao nhiêu bit để diễn tả 1 ký tự tương ứng, ví dụ các hệ mã phổ biến : - Hệ thập phân mã nhị phân BCD (Binary Coded Decima) dùng 6 bit. - Hệ thập phân mã nhị phân mở rộng EBCDIC (Extended Binary Coded Decimal Interchange Code) dùng 8 bit tương đương 1 byte để biễu diễn 1 ký tự. - Hệ chuyển đổi thông tin theo mã chuẩn của Mỹ ASCII (American Standard Code for Information Interchange) là hệ mã thông dụng nhất hiện nay trong kỹ thuật tin học. Hệ mã ASCII dùng nhóm 7 bit hoặc 8 bit để biểu diễn tối đa 128 hoặc 256 ký tự khác nhau và mã hóa theo ký tự liên tục theo cơ số 16. Hệ mã ASCII 7 bit, mã hoá 128 ký tự liên tục như sau: 0 : NUL (ký tự rỗng) 1 - 31 : 31 ký tự điều khiển 32 - 47 : các dấu trống SP (space) ! # $ % & ( ) * + , - . / 48 - 57 : ký số từ 0 đến 9 58 - 64 : các dấu : ; < = > ? @ 65 - 90 : các chữ in hoa từ A đến Z 91 - 96 : các dấu [ \ ] _ ` 97 - 122 : các chữ thường từ a đến z 123 - 127 : các dấu { | } ~ DEL (xóa) Hệ mã ASCII 8 bit (ASCII mở rộng) có thêm 128 ký tự khác ngoài các ký tự nêu trên gồm các chữ cái có dấu, các hình vẽ, các đường kẻ khung đơn và khung đôi và một số ký hiệu đặc biệt (xem phụ lục). - Hệ chuyển đổi thông tin theo bộ mã Unicode: Ngày nay máy tính đã toàn cầu hóa, mà hình ảnh cụ thể là mạng Internet, do vậy bảng mã ASCII đã bộc lộ khả năng mã hóa hạn chế của nó. Để thống nhất bộ mã trên toàn thế giới, người ta đã đề xuất bộ mã 16 bit mang tên Unicode. Vì dùng tới 16 bít để mã hóa (mã hóa được 216 kí tự ), vì vậy nó đủ lớn để đáp ứng cho việc mã hóa tất cả các ngôn ngữ trên toàn thế giới. Đặc điểm chính của Unicode là nó không chứa các kí tự điều khiển mà dành tất cả để mã hóa kí tự. Bảng sau đây cho chúng ta biết sơ bộ cách phân bố mã chuẩn trong Unicode: Mã thập phân Kí tự 0 đến 8191 Chữ cái Anh, Latin1, Châu Âu, Latin mở rộng, chữ cái phiên âm, Hy lạp, Nga, Armerical, Do thái, Ả rập, Ethiopi, Dvanagari, bengali, Gurmukhi, Gujarati,Orya, Tamil. Telugu, Kanada, Malaixia, Thái, Lào, Miến điện, Khme, Tây tạng, Mông cổ, Georgi Kí hiệu 19 Chương 1: Các khái niệm cơ bản Chữ tượng hình, chữ cái Hán, chữ Nhật, Hàn 8192-12287 Chữ tượng hình Hán, Nhật, Hàn 12288-16383 Dành cho người sử dụng 16384-59391 Vùng tương thích 59392-65024 Cho các mục đích trong tương lai 65025-65036 8192 giá trị đầu dành cho chữ cái chuẩn; 4096 giá trị tiếp theo dành cho kí tự toán học, kỹ thuật,… … Unicode qui định các chữ cái có âm tiết trong tiếng Việt là các kí tự tổ hợp. Ví dụ chữ “â” là tổ hợp của hai chữ ‘a’ và ‘Λ’; mỗi kí tự tổ hợp bao gồm nguyên âm cơ sở được nối tiếp bởi kí tự dấu thanh. Nguyên âm cơ sở và dấu thanh được đặt vào cùng vị trí khi hiển thị. Nếu chữ cái được tổ hợp từ hai hay nhiều kí tự âm tiết (ví dụ ‘â’) thứ tự các dấu không quan trọng nếu không có luật chính tả cụ thể. Các kí tự tổ hợp từ trước như chữ ‘đ’ chỉ dùng một mã duy nhất để mô tả. Để biểu diễn tiếng Việt ta cần : - 33 chữ cái hoa - 33 chữ cái thường - 5 dấu thanh: huyền (`), ngã (~), hỏi ( ?), nặng (.), sắc ( ́) 1.2. CẤU TRÚC TỔNG QUÁT CỦA HỆ THỐNG MÁY TÍNH 1.2.1. Nguyên lý thiết kế cơ bản 1.2.1.1. Nguyên lý Turing Alan Mathison Turing (1912 - 1954) là một nhà toán học người Anh đã đưa ra một thiết bị tính đơn giản gọi là máy Turing. Về lý thuyết, mọi quá trình tính toán nếu thực hiện được thì đều có thể mô phỏng lại trên máy Turning. Máy Turning gồm có (xem hình 2.1): - Một bộ điều khiển trạng thái hữu hạn (finite control), trong đó có các trạng thái đặc biệt như trạng thái khởi đầu và trạng thái kết thúc. - Một băng ghi (tape) chứa tín hiệu trong các ô. - Một đầu đọc (head) và ghi có thể di chuyển theo 2 chiều trái hoặc phải một đơn vị. Băng ghi TAPE Đầu đọc/ghi READ/WRITE HEAD (moves in both directions) h q0 Bộ điều khiển hữu hạn . q1 B FINITE CONTROL q3 q2 20 B B B Chương 1: Các khái niệm cơ bản Sơ đồ máy Turing Ðầu đọc/ghi mang chức năng thông tin nối giữa Bộ điều khiển hữu hạn và băng ghi. Ðầu bằng cách đọc dấu hiệu từ băng và cũng dùng nó để thay đổi dấu hiệu trên băng. Bộ kiểm soát vận hành theo từng bước riêng biệt; mỗi bước nó thực hiện 2 chức năng tùy thuộc vào trạng thái hiện tại của nó và tín hiệu hiện tại của băng: 1. Ðặt bộ điều khiển ở trạng thái ban đầu q1, băng trắng và đầu đọc/ghi chỉ vào ô khởi đầu. 2. Nếu: (a) trạng thái hiện tại q trùng với trạng thái kết thúc qo thì máy sẽ dừng. (b) ngược lại, trạng thái q sẽ chuyển qua q, tín hiệu trên băng s thành s và đầu đọc dịch chuyển sang phải hoặc trái một đơn vị. Máy hoàn thành xong một bước tính toán và sẵn sàng cho bước tiếp theo. 1.2.1.2. Nguyên lý Von Neumann Năm 1946, nhà toán học Mỹ John Von Neumann (1903 - 1957) đã đề ra một nguyên lý máy tính hoạt động theo một chương trình được lưu trữ và truy nhập theo địa chỉ. Nguyên lý này được trình bày ở một bài báo nổi tiếng nhan đề: Thảo luận sơ bộ về thiết kế logic của máy tính điện tử . Nội dung nguyên lý Von Neumann gồm: - Máy tính có thể hoạt động theo một chương trình đã được lưu trữ. Theo Von Neumann, chúng ta có thể tập hợp các lệnh cho máy thi hành theo một chương trình được thiết kế và coi đó như một tập dữ liệu. Dữ liệu này được cài vào trong máy và được truyền bằng xung điện. Ðây là một cuộc cách mạng mới cho máy tính nhằm tăng tốc độ tính toán vào thời đó vì trước kia máy chỉ có thể nhận được các lệnh từ băng giấy hoặc bìa đục lỗ và nạp vào bằng tay. Nếu gặp bài toán lặp lại nhiều lần thì cũng tiếp tục bằng cách nạp lại một cách thủ công như vậy gây hạn chế trong tính toán sử dụng. - Bộ nhớ được địa chỉ hóa Mỗi dữ liệu đều có một địa chỉ của vùng nhớ chứa số liệu đó. Như vậy để truy nhập dữ liệu ta chỉ cần xác định địa chỉ của nó trên bộ nhớ. - Bộ đếm của chương trình Nếu mỗi câu lệnh phải dùng một vùng nhớ để chứa địa chỉ của câu lệnh tiếp theo thì không gian bộ nhớ sẽ bị thu hẹp. Ðể khắc phục hạn chế này, máy được gắn một thanh ghi để chỉ ra vị trí của lệnh tiếp theo cần được thực hiện và nội dung của nó tự động được tăng lên mỗi lần lệnh được truy cập. Muốn đổi thứ tự lệnh ta chỉ cần thay đổi nội dung thanh ghi bằng một địa chỉ của lệnh cần được thực hiện tiếp. 21
DMCA.com Protection Status Copyright by webtailieu.net