Bài giảng Cấu trúc máy tính - Chương 1: Tổng quan về máy tính - Đào Quốc Phương

ppt 82 trang ngocly 150
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Cấu trúc máy tính - Chương 1: Tổng quan về máy tính - Đào Quốc Phươ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:

  • pptbai_giang_cau_truc_may_tinh_chuong_1_tong_quan_ve_may_tinh_d.ppt

Nội dung text: Bài giảng Cấu trúc máy tính - Chương 1: Tổng quan về máy tính - Đào Quốc Phương

  1. CẤU TRÚC MÁY TÍNH GV: Đào Quốc Phương Email: daoquocphuong@gmail.com
  2. Tài liệu tham khảo 1. Giáo trình vi xử lý và cấu trúc máy tính - Ngô Diên Tập 2. Tập bài giảng cấu trúc máy tính 6/23/2021 Chương 1. Tổng quan về máy tính 2
  3. Đề cương môn học ◼ Chương 1. Tổng quan về máy tính ◼ Chương 2. Kiến trúc cơ bản của máy tính ◼ Chương 3. Bộ xử lý trung tâm (CPU) ◼ Chương 4. Lập trình hợp ngữ ◼ Chương 5. Bộ nhớ máy tính ◼ Chương 6. Thiết bị ngoại vi 6/23/2021 Chương 1. Tổng quan về máy tính 3
  4. Cấu trúc máy tính Chương 1 TỔNG QUAN VỀ MÁY TÍNH 6/23/2021 Chương 1. Tổng quan về máy tính 4
  5. Nội dung 1. Máy tính & phân loại 2. Lịch sử phát triển máy tính 3. Số học máy tính 6/23/2021 Chương 1. Tổng quan về máy tính 5
  6. 1. Máy tính & Phân loại Máy tính ◼ Máy tính (Computer) là thiết bị điện tử thực hiện các công việc sau: ◼ Nhận thông tin vào ◼ Xử lý thông tin theo dãy các lệnh được nhớ sẵn bên trong ◼ Đưa thông tin ra. ◼ Dãy các lệnh nằm trong bộ nhớ để yêu cầu máy tính thực hiện công việc cụ thể gọi là chương trình (program) -> Máy tính hoạt động theo chương trình. 6/23/2021 Chương 1. Tổng quan về máy tính 6
  7. Máy tính Bộ xử lý trung tâm (Central Processing Unit) Các thiết bị vào Các thiết bị ra (Input Devices) (Output Devices) Bộ nhớ máy tính (Main Memory) 6/23/2021 Chương 1. Tổng quan về máy tính 7
  8. Sơ đồ phân cấp của máy tính Người thiết kế Người sử dụng Người lập trình HĐH Chương trình ứng dụng Hệ điều hành BIOS Phần cứng Hệ điều hành cung cấp các dịch vụ, hàm chức năng API (tạo xóa thư mục, định dạng ổ đĩa ) BIOS cung cấp các hàm cho HĐH để thực hiện các chức năng vào ra cơ bản (đọc phím, xuất dữ liệu ) Phần cứng: là nơi thực thi các yêu cầu của người sử dụng. Vi xử lý là thiết bị cuối cùng thực thi lệnh 6/23/2021 Chương 1. Tổng quan về máy tính 8
  9. Phần cứng & Phần mềm ◼ Phần cứng (hardware) để chỉ toàn bộ những thiết bị cơ khí, điện tử tạo nên máy tính (ổ đĩa, màn hình ) -> Hệ thống vật lý của máy tính ◼ Phần mềm (software) để chỉ chương trình máy tính được thực thi trên phần cứng (HĐH, trình tiện ích, trình ứng dụng như MS Word, Excel , ngôn ngữ lập trình như Pascal, C++, Java ) -> Các chương trình và dữ liệu 6/23/2021 Chương 1. Tổng quan về máy tính 9
  10. Phân loại máy tính ◼ Phân loại truyền thống: ◼ Máy vi tính (Microcomputers) ◼ Máy tính nhỏ (Minicomputers) ◼ Máy tính lớn (Mainframe Computers) ◼ Siêu máy tính (Supercomputers) ◼ Phân loại máy tính hiện đại ◼ Máy tính cá nhân (Personal Computers) ◼ Máy chủ (Server Computers) ◼ Máy tính nhúng (Embedded Computers) 6/23/2021 Chương 1. Tổng quan về máy tính 10
  11. Máy tính cá nhân PC ◼ Là loại máy tính phổ biến nhất ◼ Các loại máy tính cá nhân: ◼ Máy tính để bàn (Desktop) ◼ Máy tính xách tay (Laptop) ◼ 1981 -> IBM giới thiệu máy tính IBM-PC sử dụng bộ xử lý Intel 8088 ◼ 1984 -> Apple đưa ra Macintosh sử dụng bộ xử lý Motorola 68000 6/23/2021 Chương 1. Tổng quan về máy tính 11
  12. Máy chủ ◼ Thực chất là máy phục vụ ◼ Dùng trong mạng theo mô hình mạng ◼ Client/Server (Khách hàng/Người phục vụ) ◼ Tốc độ và hiệu năng tính toán cao ◼ Dung lượng bộ nhớ lớn ◼ Độ tin cậy cao 6/23/2021 Chương 1. Tổng quan về máy tính 12
  13. Máy tính nhúng ◼ Được đặt trong thiết bị khác để điều khiển thiết bị đó làm việc ◼ Được thiết kế chuyên dụng ◼ Ví dụ: ◼ Điện thoại di động ◼ Máy ảnh số ◼ Bộ điều khiển trong máy giặt, điều hoà nhiệt độ 6/23/2021 Chương 1. Tổng quan về máy tính 13
  14. 2. Lịch sử phát triển máy tính ◼ Thế hệ thứ nhất (1945-1954): Máy tính dùng đèn điện tử chân không ◼ Thế hệ thứ hai (1955-1964): Máy tính dùng transistor ◼ Thế hệ thứ ba (1965-1974): Máy tính dùng vi mạch SSI, MSI ◼ Thế hệ thứ tư (1975-1990): Máy tính dùng vi mạch LSI, VLSI ◼ Thế hệ thứ năm (1991-now): Máy tính dùng vi mạch ULSI, SoC 6/23/2021 Chương 1. Tổng quan về máy tính 14
  15. Máy tính dùng đèn điện tử ◼ ENIAC- Máy tính điện tử đầu tiên ◼ Electronic Numerical Intergator And Computer ◼ Dự án của Bộ Quốc phòng Mỹ ◼ Do John Mauchly và John Presper Eckert ở Đại học Pennsylvania thiết kế. ◼ Bắt đầu từ năm 1943, hoàn thành năm 1946 ◼ Nặng 30 tấn ◼ 17468 đèn điện tử và 1500 rơle ◼ 5000 phép cộng/giây ◼ Xử lý theo số thập phân ◼ Bộ nhớ chỉ lưu trữ dữ liệu ◼ Lập trình bằng cách thiết lập vị trí của các chuyển mạch và các cáp nối. 6/23/2021 Chương 1. Tổng quan về máy tính 15
  16. ENIAC 6/23/2021 Chương 1. Tổng quan về máy tính 16
  17. Máy tính Von Neumann ◼ Đó là máy tính IAS: ◼ Princeton Institute for Advanced Studies ◼ Được bắt đầu từ 1947, hoàn thành1952 ◼ Do John von Neumann thiết kế ◼ Được xây dựng theo ý tưởng “chương trình được lưu trữ” (stored-program concept) của Von Neumann/Turing (1945) 6/23/2021 Chương 1. Tổng quan về máy tính 17
  18. Đặc điểm chính của máy tính IAS ◼ Bao gồm các thành phần: đơn vị điều khiển, đơn vị số học và logic (ALU), bộ nhớ chính và các thiết bị vào-ra. ◼ Bộ nhớ chính chứa chương trình và dữ liệu ◼ Bộ nhớ chính được đánh địa chỉ theo từng ngăn nhớ, không phụ thuộc vào nội dung của nó. ◼ ALU thực hiện các phép toán với số nhị phân ◼ Đơn vị điều khiển nhận lệnh từ bộ nhớ, giải mã và thực hiện lệnh một cách tuần tự. ◼ Đơn vị điều khiển điều khiển hoạt động của các thiết bị vào-ra ◼ Trở thành mô hình cơ bản của máy tính 6/23/2021 Chương 1. Tổng quan về máy tính 18
  19. John von Neumann và máy tính IAS 6/23/2021 Chương 1. Tổng quan về máy tính 19
  20. Máy tính dùng transistor ◼ Máy tính PDP-1 của DEC (Digital Equipment Corporation) máy tính mini đầu tiên ◼ IBM 7000 ◼ Hàng trăm nghìn phép cộng trong một giây ◼ Các ngôn ngữ lập trình bậc cao ra đời 6/23/2021 Chương 1. Tổng quan về máy tính 20
  21. Máy tính dùng vi mạch SSI, MSI và LSI ◼ Vi mạch (Integrated Circuit - IC): nhiều transistor và các phần tử khác được tích hợp trên một chip bán dẫn. ◼ SSI (Small Scale Integration) ◼ MSI (Medium Scale Integration) ◼ LSI (Large Scale Integration) ◼ VLSI (Very Large Scale Integration) (thế hệ thứ tư) ◼ ULSI (Ultra Large Scale Integration) (thế hệ thứ năm) ◼ SoC (System on Chip) ◼ Siêu máy tính xuất hiện: CRAY-1, VAX ◼ Bộ vi xử lý (microprocessor) ra đời ◼ Bộ vi xử lý đầu tiên Intel 4004 (1971). 6/23/2021 Chương 1. Tổng quan về máy tính 21
  22. Luật Moore ◼ Gordon Moore – người đồng sáng lập Intel ◼ Số transistors trên chip sẽ gấp đôi sau 18 tháng ◼ Giá thành của chip hầu như không thay đổi ◼ Mật độ cao hơn, do vậy đường dẫn ngắn hơn ◼ Kích thước nhỏ hơn dẫn tới độ phức tạp tăng lên ◼ Điện năng tiêu thụ ít hơn ◼ Hệ thống có ít các chip liên kết với nhau, do đó tăng độ tin cậy 6/23/2021 Chương 1. Tổng quan về máy tính 22
  23. Tăng trưởng transistor trong CPU 6/23/2021 Chương 1. Tổng quan về máy tính 23
  24. Tăng trưởng transistor trong CPU Năm Transistors Bộ xử lý 1971 2300 4004 1972 3500 8008 1974 6000 8080 1978 29,000 8086 1982 134,000 80286 1985 275,000 80386TM 1989 1,200,000 80486TM DX 1993 3,100,000 Pentium 1998 7,500,000 Pentium II 1999 28,000,000 Pentium III 2000 42,000,000 Pentium IV 2002 169,000,000 Xeon 2003 410,000,000 Itanium 6/23/2021 Chương 1. Tổng quan về máy tính 24
  25. DEC PDP-1 6/23/2021 Chương 1. Tổng quan về máy tính 25
  26. Máy tính dùng vi mạch VLSI/ULSI Các sản phẩm chính của công nghệ VLSI/ULSI: ◼ Bộ vi xử lý (Microprocessor): CPU được chế tạo trên một chip ◼ Vi mạch điều khiển tổng hợp (Chipset): một hoặc một vài vi mạch thực hiện được nhiều chức năng điều khiển và nối ghép ◼ Bộ nhớ bán dẫn (Semiconductor Memory): ROM, RAM ◼ Các bộ vi điều khiển (Microcontroller): máy tính chuyên dụng được chế tạo trên 1 chip 6/23/2021 Chương 1. Tổng quan về máy tính 26
  27. 80386 - bộ vi xử lý 32-bit đầu tiên của Intel 6/23/2021 Chương 1. Tổng quan về máy tính 27
  28. Intel Pentium (32-bit) 6/23/2021 Chương 1. Tổng quan về máy tính 28
  29. Intel Core 2 Dual 6/23/2021 Chương 1. Tổng quan về máy tính 29
  30. 3. Số học máy tính 3.1. Các hệ đếm cơ bản 3.2. Mã hóa và lưu trữ dữ liệu trong máy tính 3.3. Biểu diễn số nguyên 3.4. Các phép toán số học với số hệ nhị phân 3.5. Biểu diễn ký tự 6/23/2021 Chương 1. Tổng quan về máy tính 30
  31. 3.1 Các hệ đếm cơ bản ◼ 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ười sáu (Hexadecimal System) → dùng để viết gọn cho số nhị phân 6/23/2021 Chương 1. Tổng quan về máy tính 31
  32. 3.1.1 Hệ thập phân ◼ Cơ số 10 ◼ 10 chữ số: 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 n ◼ 99 999 = 10 - 1 6/23/2021 Chương 1. Tổng quan về máy tính 32
  33. Dạng tổng quát của số thập phân ◼ Giá trị của A được hiểu như sau: A = anan-1 a1a0,a-1 .a-m n n-1 1 0 -1 -m A = an10 + an-110 + + a110 + a010 +a-110 + .+a-m10 i A =  ai10 (i=-m n) 6/23/2021 Chương 1. Tổng quan về máy tính 33
  34. Ví dụ số thập phân 152.37 = 1*102 + 5*101 + 2*100 + 3*10-1 + 7*10-2 ◼ Các chữ số phần nguyên: ◼ 152:10 = 15 dư 2 ◼ 15:10 = 1 dư 5 ◼ 1:10 = 0 dư 1 ◼ Các chữ số phần lẻ: ◼ 0.37*10 = 3.7 phần nguyên = 3 ◼ 0.7*10 = 7.0 phần nguyên = 7 6/23/2021 Chương 1. Tổng quan về máy tính 34
  35. 3.1.2 Hệ nhị phân ◼ Cơ số 2 ◼ 2 chữ số : 0 và 1 ◼ chữ số nhị phân gọi là bit (binary digit) ◼ Bit là đơn vị thông tin nhỏ nhất n ◼ Dùng n bit có thể biểu diễn được 2 giá trị khác nhau: ◼ 00 000 = 0 n ◼ 11 111 = 2 - 1 6/23/2021 Chương 1. Tổng quan về máy tính 35
  36. Dạng tổng quát của số nhị phân ◼ Giá trị của A được hiểu như sau: A = anan-1 a1a0,a-1 .a-m n n-1 1 0 -1 -m A = an2 + an-12 + + a12 + a02 +a-12 + .+a-m2 i A =  ai2 (i=-m n) 6/23/2021 Chương 1. Tổng quan về máy tính 36
  37. Ví dụ số nhị phân Thập phân Nhị phân 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 6/23/2021 Chương 1. Tổng quan về máy tính 37
  38. Ví dụ số nhị phân ◼ 110(2) = 1*22 + 1*21 + 0*20 = 6(10) ◼ 110111(2) = 1*25 + 1*24 + 0*23 + 1*22 + 1*21 + 1*20 = 55(10) 6/23/2021 Chương 1. Tổng quan về máy tính 38
  39. Chuyển đổi số nguyên thập phân sang nhị phân ◼ Phương pháp 1: chia dần cho 2 rồi lấy phần dư ◼ Phương pháp 2: Phân tích thành tổng của các số 2i → nhanh hơn 6/23/2021 Chương 1. Tổng quan về máy tính 39
  40. Phương pháp chia dần cho 2 ◼ Ví dụ chuyển đổi 125(10) ◼ 125:2 = 62 dư 1 ◼ 62:2 = 31 dư 0 ◼ 31:2 = 15 dư 1 ◼ 15:2 = 7 dư 1 ◼ 7:2 = 3 dư 1 ◼ 3:2 = 1 dư 1 ◼ 1:2 = 0 dư 1 ◼ Kết quả 125(10) = 1111101(2) 6/23/2021 Chương 1. Tổng quan về máy tính 40
  41. Phương pháp phân tích thành tổng của các 2i ◼ Ví dụ: chuyển đổi 125(10) ◼ 125 = 64 + 32 + 16 + 8 + 4 + 1 = 26 + 25 + 24 + 23 + 22 + 20 26 25 24 23 22 21 20 64 32 16 8 4 2 1 1 1 1 1 1 0 1 ◼ Kết quả 125(10) = 1111101(2) 6/23/2021 Chương 1. Tổng quan về máy tính 41
  42. Bài tập ◼ Hãy viết chương trình C++ đổi một số thập phân thành số nhị phân theo 2 phương pháp trên 6/23/2021 Chương 1. Tổng quan về máy tính 42
  43. Chuyển đổi số lẻ thập phân sang nhị phân ◼ Ví dụ 1: chuyển đổi 0.25(10) ◼ 0.25 x 2 = 0.5 phần nguyên = 0 ◼ 0.5 x 2 = 1.0 phần nguyên = 1 ◼ Kết quả: 0.25(10) = .01(2) 6/23/2021 Chương 1. Tổng quan về máy tính 43
  44. 3.1.3 Hệ thập lục phân ◼ Cơ số 16 ◼ 16 chữ số: 0,1,2,3,4,5,6,7,8,9, A,B,C,D,E,F ◼ Dùng để viết gọn cho số nhị phân: cứ một nhóm 4-bit sẽ được thay bằng một chữ số Hexa 6/23/2021 Chương 1. Tổng quan về máy tính 44
  45. Quan hệ giữa số nhị phân và số Hexa Nhị phân Hexa 0000 0 ◼ Ví dụ chuyển đổi số nhị phân sang 0001 1 số Hexa: 0010 2 0011 3 ◼ 1010 0011(2) = A3(16) 0100 4 ◼ 0000 0000(2) = 00(16) 0101 5 0110 6 ◼ 1010 1101 1011 1000(2) = ADB8(16) 0111 7 ◼ 1000 8 1111 1111 1111 1111(2) = FFFF(16) 1001 9 1010 A 1011 B 1100 C 1101 D 1110 E 1111 F 6/23/2021 Chương 1. Tổng quan về máy tính 45
  46. Bài tập ◼ Hãy viết chương trình C++ đổi một số nhị phân thành số hexa ◼ Hãy viết chương trình C++ đổi một số thập phân thành số hexa 6/23/2021 Chương 1. Tổng quan về máy tính 46
  47. 3.2. Mã hóa và lưu trữ dữ liệu trong máy tính ◼ Nguyên tắc chung về mã hóa dữ liệu ◼ Mọi dữ liệu đư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 qui ước ◼ Dữ liệu tự nhiên: tồn tại khách quan với con người 6/23/2021 Chương 1. Tổng quan về máy tính 47
  48. Mã hoá dữ liệu nhân tạo ◼ Mã hóa theo các chuẩn qui ước ◼ Dữ liệu số: ◼ Số nguyên: mã hóa theo một số chuẩn ◼ Số thực: mã hóa bằng số dấu phẩy động ◼ Dữ liệu ký tự: mã hóa theo bộ mã ký tự 6/23/2021 Chương 1. Tổng quan về máy tính 48
  49. Độ dài từ dữ liệ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 ◼ Thường là bội của 8-bit ◼ VD: 8, 16, 32, 64 bit 6/23/2021 Chương 1. Tổng quan về máy tính 49
  50. Thứ tự lưu trữ các byte trong bộ nhớ chính ◼ Bộ nhớ chính thường tổ chức theo byte ◼ Hai cách lưu trữ dữ liệu nhiều byte: ◼ Đầu nhỏ (Little-endian): Byte có ý nghĩa thấp được lưu trữ ở ngăn nhớ có địa chỉ nhỏ, byte có ý nghĩa cao được lưu trữ ở ngăn nhớ có địa chỉ lớn. ◼ Đầu to (Big-endian): Byte có ý nghĩa cao được lưu trữ ở ngăn nhớ có địa chỉ nhỏ, byte có ý nghĩa thấp được lưu trữ ở ngăn nhớ có địa chỉ lớn. ◼ Ví dụ: Intel 80x86 và các Pentium: đầu nhỏ, Motorola 680x0, SunSPARC: đầu to 6/23/2021 Chương 1. Tổng quan về máy tính 50
  51. Ví dụ lưu trữ 32 bit 0001 1010 0010 1011 0011 1100 0100 1101 1A 2B 3C 4D 4D 300 1A 300 3C 301 2B 301 2B 302 3C 302 1A 303 4D 303 Đầu nhỏ Đầu to 6/23/2021 Chương 1. Tổng quan về máy tính 51
  52. 3.3. Biểu diễn số nguyên ◼ Số nguyên không dấu (Unsigned Integer) ◼ Số nguyên có dấu (Signed Integer) 6/23/2021 Chương 1. Tổng quan về máy tính 52
  53. 3.3.1 Biểu diễn số nguyên không dấu ◼ Nguyên tắc tổng quát: Dùng n bit biểu diễn số nguyên không dấu A: an-1an-2 a1a0 Giá trị của A được tính như sau: n-1 n-2 1 0 A = an-12 + an-22 + + a12 + a02 i A =  ai2 (i=0 n-1) Dải biểu diễn của A: từ 0 đến 2n – 1 6/23/2021 Chương 1. Tổng quan về máy tính 53
  54. Các ví dụ ◼ Ví dụ 1. Biểu diễn các số nguyên không dấu sau đây bằng 8-bit: A = 42 ; B = 131 ◼ Giải: A = 42 = 32 + 8 + 2 = 25 + 23 + 21 42 = 0010 1010 B = 131 = 128 + 2 + 1 = 27 + 21 + 20 131= 1000 0011 6/23/2021 Chương 1. Tổng quan về máy tính 54
  55. Các ví dụ (tiếp) ◼ Ví dụ 2. Cho các số nguyên không dấu M, N được biểu diễn bằng 8-bit như sau: M = 0001 0010 N = 1011 1001 Xác định giá trị của chúng ? ◼ Giải: M = 0001 0010 = 24 + 21 = 16 +2 = 18 N = 1011 1001 = 27 + 25 + 24 + 23 + 20 = 128 + 32 + 16 + 8 + 1 = 185 6/23/2021 Chương 1. Tổng quan về máy tính 55
  56. Với n = 8 bit ◼ Biểu diễn được các giá trị từ 0 đến 255 0000 0000 = 0 0000 0001 = 1 0000 0010 = 2 0000 0011 = 3 1111 1111 = 255 6/23/2021 Chương 1. Tổng quan về máy tính 56
  57. Với n = 16 bit, 32 bit, 64 bit 16 ◼ n= 16 bit: dải biểu diễn từ 0 đến 65535 (2 – 1) 0000 0000 0000 0000 = 0 0000 0000 1111 1111 = 255 0000 0001 0000 0000 = 256 1111 1111 1111 1111 = 65535 32 ◼ n= 32 bit: dải biểu diễn từ 0 đến 2 - 1 64 ◼ n= 64 bit: dải biểu diễn từ 0 đến 2 - 1 6/23/2021 Chương 1. Tổng quan về máy tính 57
  58. 3.3.2 Biểu diễn số nguyên có dấu a. Số bù một và Số bù hai ◼ Định nghĩa: Cho một số nhị phân A được biểu diễn bằng n bit, ta có: n ◼ Số bù một của A = (2 -1) – A n ◼ Số bù hai của A = 2 – A ◼ Số bù hai của A = (Số bù một của A) +1 6/23/2021 Chương 1. Tổng quan về máy tính 58
  59. Số bù một và Số bù hai (tiếp) Ví dụ: với n = 8 bit, cho A = 0010 0110 ◼ Số bù một của A được tính như sau: 1111 1111 (28-1) - 0010 0110 (A) 1101 1001 → đảo các bit của A ◼ Số bù hai của A được tính như sau: 1 0000 0000 (28) - 0010 0110 (A) 1101 1010 → thực hiện khó khăn 6/23/2021 Chương 1. Tổng quan về máy tính 59
  60. Quy tắc tìm Số bù một và Số bù hai ◼ Số bù một của A = đảo giá trị các bit của A ◼ (Số bù hai của A) = (Số bù một của A) + 1 ◼ Ví dụ: ◼ Cho A = 0010 0101 ◼ Số bù một = 1101 1010 + 1 ◼ Số bù hai = 1101 1011 ◼ Nhận xét: A = 0010 0101 Số bù hai = + 1101 1011 1 0000 0000 = 0 (bỏ qua bit nhớ ra ngoài) → Số bù hai của A = -A 6/23/2021 Chương 1. Tổng quan về máy tính 60
  61. Biểu diễn số nguyên có dấu bằng mã bù hai ◼ Nguyên tắc tổng quát: Dùng n bit biểu diễn số nguyên có dấu A: an-1an-2 a1a0 ◼ 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 ◼ 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 6/23/2021 Chương 1. Tổng quan về máy tính 61
  62. Biểu diễn số dương ◼ Dạng tổng quát của số dương A: 0an-2 a1a0 ◼ Giá trị của số dương A được tính như sau: n-2 n-3 1 0 A = an-22 + an-32 + + a12 + a02 i A =  ai2 (i=0 n-2) n-1 ◼ Dải biểu diễn của A: từ 0 đến 2 – 1 6/23/2021 Chương 1. Tổng quan về máy tính 62
  63. Biểu diễn số âm ◼ Dạng tổng quát của số âm A: 1an-2 a1a0 ◼ Giá trị của số âm A được tính như sau: n-1 i A = -2 +  ai2 (i=0 n-2) n-1 ◼ Dải biểu diễn cho số âm: từ -1 đến -2 6/23/2021 Chương 1. Tổng quan về máy tính 63
  64. Các ví dụ ◼ Ví dụ 1. Biểu diễn các số nguyên có dấu sau đây bằng 8-bit: A = +58 ; B = -80 Giải: A = +58 = 0011 1010 B = -80 Ta có: + 80 = 0101 0000 Số bù một = 1010 1111 + 1 Số bù hai = 1011 0000 Vậy: B = -80 = 1011 0000 6/23/2021 Chương 1. Tổng quan về máy tính 64
  65. Các ví dụ ◼ Ví dụ 2. Hãy xác định giá trị của các số nguyên có dấu được biểu diễn dưới đây: ◼ P = 0110 0010 ◼ Q = 1101 1011 Giải: ◼ P = 0110 0010 = 64+32+2 = +98 ◼ Q = 1101 1011 = -128+64+16+8+2+1 = -37 6/23/2021 Chương 1. Tổng quan về máy tính 65
  66. Với n = 8 bit ◼ Biểu diễn được các giá trị từ -128 đến +127 0000 0000 = 0 0000 0001 = +1 0000 0010 = +2 0000 0011 = +3 0111 1111 = +127 1000 0000 = - 128 1000 0001 = - 127 1111 1110 = -2 1111 1111 = -1 6/23/2021 Chương 1. Tổng quan về máy tính 66
  67. Với n = 16 bit, 32 bit, 64 bit ◼ Với n=16bit: biểu diễn từ -32768 đến +32767 0000 0000 0000 0000 = 0 0000 0000 0000 0001 = +1 0111 1111 1111 1111 = +32767 1000 0000 0000 0000 = -32768 1111 1111 1111 1111 = -1 31 31 ◼ Với n=32bit: biểu diễn từ -2 đến 2 -1 63 63 ◼ Với n=64bit: biểu diễn từ -2 đến 2 -1 6/23/2021 Chương 1. Tổng quan về máy tính 67
  68. 3.3.3 Biểu diễn số nguyên theo mã BCD ◼ Binary Coded Decimal Code ◼ Dùng 4 bit để mã hóa cho các chữ số thập phân từ 0 đến 9: 0 → 0000 5 → 0101 1 → 0001 6 → 0110 2 → 0010 7 → 0111 3 → 0011 8 → 1000 4 → 0100 9 → 1001 ◼ còn 6 tổ hợp không sử dụng: 1010, 1011, 1100, 1101, 1110, 1111 6/23/2021 Chương 1. Tổng quan về máy tính 68
  69. Ví dụ số BCD ◼ 35 → 0011 0101BCD ◼ 61 → 0110 0001BCD ◼ 1087 → 0001 0000 1000 0111BCD ◼ 9640 → 1001 0110 0100 0000BCD 6/23/2021 Chương 1. Tổng quan về máy tính 69
  70. Các kiểu lưu trữ số BCD ◼ BCD không gói (Unpacked BCD): Mỗi số BCD 4-bit được lưu trữ trong 4-bit thấp của mỗi byte. ◼ Ví dụ: Số 35 được lưu trữ như sau: 0011 0101 ◼ BCD gói (Packed BCD): Hai số BCD được lưu trữ trong 1 byte. ◼ Ví dụ: Số 35 được lưu trữ như sau: 0011 0101 6/23/2021 Chương 1. Tổng quan về máy tính 70
  71. Bài tập ◼ Hãy viết chương trình C++ đổi số một số thập phân thành số packed BCD 6/23/2021 Chương 1. Tổng quan về máy tính 71
  72. Các phép toán số học với hệ nhị phân ◼ Phép cộng: tương tự như với các số hệ thập phân 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 nhớ 1 Ví dụ 0010 + 1011 = 1101 6/23/2021 Chương 1. Tổng quan về máy tính 72
  73. Các phép toán số học với hệ nhị phân ◼ Phép trừ tương tự như hệ thập phân Ví dụ: 1111 - 1011 = 0100 ◼ Phép nhân tương tự như hệ thập phân 0 x 0 = 0 1001 0 x 1 = 0 x 1101 1 x 0 = 0 1001 1 x 1 = 1 0000 1001 1001 = 1110101 6/23/2021 Chương 1. Tổng quan về máy tính 73
  74. 3.5 Biểu diễn ký tự ◼ Bộ mã ASCII (American Standard Code for Information Interchange) ◼ Bộ mã Unicode 6/23/2021 Chương 1. Tổng quan về máy tính 74
  75. Bộ mã ASCII ◼ Do ANSI (American National Standard Institute) thiết kế 8 ◼ Bộ mã 8-bit → có thể mã hóa được 2 ký tự, có mã từ: 0016 ÷ FF16 , trong đó: ◼ 128 ký tự chuẩn có mã từ 0016 ÷ 7F16 ◼ 128 ký tự mở rộng có mã từ 8016 ÷ FF16 6/23/2021 Chương 1. Tổng quan về máy tính 75
  76. Các ký tự chuẩn ◼ Các ký tự hiển thị chuẩn: ◼ Các chữ cái Latin ◼ Các chữ số thập phân ◼ các dấu câu: . , : ; ◼ các dấu phép toán: + - * / % ◼ một số ký hiệu thông dụng: &, $,@, # ◼ dấu cách ◼ Các mã điều khiển ◼ Các mã điều khiển định dạng văn bản ◼ Các mã điều khiển truyền số liệu ◼ Các mã điều khiển phân tách thông tin ◼ Các mã điều khiển khác 6/23/2021 Chương 1. Tổng quan về máy tính 76
  77. Các ký tự hiển thị chuẩn ◼ 26 chữ cái hoa ‘A’ đến ‘ Z’ có mã từ 41(16) đến 5A(16) (65 đến 90): ◼ 'A‘ → 0100 0001 = 41(16) ◼ 'B' → 0100 0010 = 42(16) ◼ 'C' → 0100 0011 = 43(16) ◼ . . . ◼ 'Z' → 0101 1010 = 5A(16) ◼ 26 chữ cái thường ‘a’ đến ‘z’ có mã từ 61(16) đến 7A(16) (97 đến 122): ◼ 'a' → 0110 0001 = 61(16) ◼ 'b' → 0110 0010 = 62(16) ◼ 'c' → 0110 0011 = 63(16) ◼ . . . ◼ 'z' → 0111 1010 = 7A(16) 6/23/2021 Chương 1. Tổng quan về máy tính 77
  78. Các ký tự hiển thị chuẩn ◼ 10 chữ số thập phân từ ‘0’ đến ‘9’ có mã từ 30(16) đến 39(16) (48 đến 57): ◼ '0' → 0011 0000 = 30(16) ◼ '1' → 0011 0001 = 31(16) ◼ ‘2' → 0011 0010 = 32(16) ◼ . . . ◼ '9' → 0011 1001 = 39(16) 6/23/2021 Chương 1. Tổng quan về máy tính 78
  79. Bài tập ◼ Hãy viết chương trình C++ đổi chữ thành chữ hoa ◼ Hãy viết chương trình C++ đổi chữ thành chữ thường ◼ Hãy viết chương trình C++ đổi thành chữ mà in hoa các ký tự đầu của mỗi từ 6/23/2021 Chương 1. Tổng quan về máy tính 79
  80. Các ký tự mở rộng ◼ 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 của IBM → IBM-PC. ◼ Bộ mã ký tự mở rộng của Apple → Macintosh. ◼ Bộ mã tiếng Việt TCVN3. 6/23/2021 Chương 1. Tổng quan về máy tính 80
  81. Bộ mã hợp nhất: Unicode ◼ Do các hãng máy tính hàng đầu thiết kế ◼ Bộ mã 16-bit ◼ Bộ mã đa ngôn ngữ ◼ Có hỗ trợ các ký tự tiếng Việt 6/23/2021 Chương 1. Tổng quan về máy tính 81
  82. Câu hỏi và bài tập 1. Phần cứng là gì? Phần mềm là gì? 2. Thế nào là mã BCD đóng gói, mã BCD không đóng gói 3. Đổi các số sau ở hệ thập phân sang hệ nhị phân và thập lục phân: 252, 65534, 16632 4. Đổi các số sau sang hệ nhị phân và hệ thập phân: 001FH, 2FE0H, 0FFFH 5. Biểu diển số nguyên sau sang hệ nhị phân bằng 8 bit: -24, +78, -892 6. Cho các số nguyên không dấu được biểu diễn bằng 8-bit như sau: A = 0101 0010 B = 1001 1001 Xác định giá trị của chúng ? 7. Bộ mã 8 bit, 16 bit, 32 bit, 64 bit có thể mã hóa được bao nhiêu ký tự? 8. Cho biết mã ký tự A, D, F trong bảng ASCII 6/23/2021 Chương 1. Tổng quan về máy tính 82