-
HỆ ÐẾM VÀ LOGIC MỆNH ÐỀ. -
Biểu diễn số trong các hệ đếm. -
Số học nhị phân. -
Mệnh đề logic. -
BIỂU DIỄN DỮ LIỆU. -
Biểu diễn số nguyên. -
Biểu diễn số thực. -
Biểu diễn ký tự. PHỤ LỤC. BÀI ÐỌC THÊMCHUYỂN ÐỔI HỆ THỐNG SỐ DỰA TRÊN HỆ 8 VÀ HỆ 16. I. HỆ ÐẾM VÀ LOGIC MỆNH ÐỀ | 1. Biểu diễn số trong các 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. 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. Hệ đếm phổ biến hiện nay là hệ đếm La mã và hệ đếm thập phân. a. Hệ đếm La mã Hệ đếm La mã được xem như là hệ đếm có 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 = 1V = 5X = 10L = 50C = 100D = 500M = 1000 Ký số La mã có một số qui tắc sau: ·Số lầnn 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ầnn chỉ là 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ụ 3.1: 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ụ 3.2: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ụ 3.3: 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á 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 - 2 vạch ngang là nhiều. Hệ đếm La mã hiện ít được sử dụng trong tính toán hiện nay. b. Hệ đếm thập phân (decimal system) Hệ đếm thập phân hay hệ đếm cơ số 10 là một trong các 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ể thể hiện như là một tổng các chuỗi các ký số thập phân nhân cho 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ụ 3.4: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 = 1101 = 10102 = 100103 = 1000104 = 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:  Tổng quát, hệ đếm cơ số b ( , 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 : Số N(b) trong hệ đếm cơ số (b) thể hiện : 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à :   Trong ngành toán - tin học 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 Hệ bát phân Hệ thập phân Hệ thập lục phân | 2 8 10 16 | 0, 1 0, 1, 2, 3, 4, 5, 6, 7 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F  | c.Hệ đếm nhị phân (binary number system) 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 chỉ có: đó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ố sẽ tương đương với giá trị thập phân là :  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) d. 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ị khác nhau : 000, 001, 010, 011, 100, 101, 110, 111. Các trị này tương đương với 8 trị 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ị vị trí là lũy thừa của 8.  e.Hệ đếm thập lục phân (hexa-decimal number system) Hệ đếm thập lục phân là hệ cơ số , 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ụ 3.8:  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ụ 3.9: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 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 | 00 01 02 03 04 05 06 07 10 11 12 13 14 15 16 17 | 0 1 2 3 4 5 6 7 8 9 A B C D E F | f. Ðổi một số nguyên từ hệ thập phân sang hệ b Tổng quát:Lấy số nguyên thập phân N(10) lần lượt chia cho b cho đến khi thương số bằng 0. Kết quả số chuyển đổi N(b) là các dư số trong phép chia viết ra theo thứ tự ngược lại. Ví dụ 3.10: Dùng các phép chia 2 liên tiếp, ta có một loạt các số dư như sau:  Kết quả:  g. Ðổi phần thập phân từ hệ thập phân sang hệ cơ số b Tổng quát:Lấy số nguyên thập phân N(10) lần lượt nhân cho b cho đến khi phần thập phân của tích số bằng 0. Kết quả số chuyển đổi N(b) là các số phần nguyên trong phép nhân viết ra theo thứ tự tính toán.  Kết quả:  | 2. Số học nhị phâ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ụ 3.12:Cộng 2 số 0101 + 1100 = ?  Ví dụ 3.13:Nhân 2 số0110 x 1011 = ?   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ụ 3.14: Trừ hai số   Ví dụ 3.15: Chia hai số Qui tắc 1: Khi nhân một số nhị phân với ta thêm n số 0 vào bên phải số nhị phân đó. Ví dụ 3.16:  Qui tắc 2: Khi chia một số nguyên nhị phân cho 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ụ 3.17:  | 3. 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 FALSEvà 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 |  II. 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. | 1. Biểu diễn số nguyê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 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. 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à:  Trị âm lớn nhất trong dãy 2 bytes là Ðể 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 đó.  - 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.  | 2. 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). a. 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 b. 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ũ. 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 . b e = ± m E e Trong đó, b là cơ số qui ước, trị số mũ e có thể thay đổi tùy theo số vị trí cần dời dấu chấm để có lại trị số ban đầu. Khi dời 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 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.  Phần mũ có 7 bit = đặ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 | - 64 | - 63 | - 62 | ... | - 2 | - 1 | 0 | 1 | ... | 62 | 63 | | Ðặc trị C | 0 | 1 | 2 | ... | 62 | 63 | 64 | 65 | ... | 126 | 127 | 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)  | 3. Biểu diễn ký tự |  | Ðể 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 128hoặ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). | PHỤ LỤC 3.1 |  | BẢNG MÃ ASCII với 128 ký tự đầu tiên | Hex | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | | 0 | NUL 0 | DLE 16 | SP 32 | 0 48 | @ 64 | P 80 | ` 96 | p 112 | | 1 | SOH 1 | DC1 17 | ! 33 | 1 49 | A 65 | Q 81 | a 97 | q 113 | | 2 | STX 2 | DC2 18 | “ 34 | 2 50 | B 66 | R 82 | b 98 | r 114 | | 3 | © 3 | DC3 19 | # 35 | 3 51 | C 67 | S 83 | c 99 | s 115 | | 4 | ¨ 4 | DC4 20 | $ 36 | 4 52 | D 68 | T 84 | d 100 | t 116 | | 5 | § 5 | NAK 21 | % 37 | 5 53 | E 69 | U 85 | e 101 | u 117 | | 6 | ª 6 | SYN 22 | & 38 | 6 54 | F 70 | V 86 | f 102 | v 118 | | 7 | BEL 7 | ETB 23 | ‘ 39 | 7 55 | G 71 | W 87 | g 103 | w 119 | | 8 | BS 8 | CAN 24 | ( 40 | 8 56 | H 72 | X 88 | h 104 | x 120 | | 9 | HT 9 | EM 25 | ) 41 | 9 57 | I 73 | Y 89 | I 105 | y 121 | | A | LF 10 | SUB 26 | * 42 | : 58 | J 74 | Z 90 | j 106 | z 122 | | B | VT 11 | ESC 27 | + 43 | ; 59 | K 75 | [ 91 | k 107 | { 123 | | C | FF 12 | FS 28 | , 44 | < 60 | L 76 | \ 92 | l 108 | | 124 | | D | CR 13 | GS 29 | - 45 | = 61 | M 77 | ] 93 | m 109 | } 125 | | E | SO 14 | RS 30 | . 46 | > 62 | N 78 | ^ 94 | n 110 | ~ 126 | | F | SI 15 | US 31 | / 47 | ? 63 | O 79 | _ 95 | o 111 | DEL 127 |  PHỤ LỤC 3.2 BẢNG MÃ ASCII với ký tự số 128 - số 255 | Hex | 8 | 9 | A | B | C | D | E | F | | 0 | Ç 128 | É 144 | á 160 | ░ 176 | └ 192 | ╨ 208 | α 224 | ≡ 240 | | 1 | ü 129 | æ 145 | í 161 | ▒ 177 | ┴ 193 | ╤ 209 | ß 225 | ± 241 | | 2 | é 130 | Æ 146 | ó 162 | ▓ 178 | ┬ 194 | ╥ 210 | Γ 226 | ≥ 242 | | 3 | â 131 | ô 147 | ú 163 | │ 179 | ├ 195 | ╙ 211 | π 227 | ≤ 243 | | 4 | ä 132 | ö 148 | ñ 164 | ┤ 180 | ─ 196 | ╘ 212 | Σ 228 | ⌠ 244 | | 5 | à 133 | ò 149 | Ñ 165 | ╡ 181 | ┼ 197 | ╒ 213 | σ 229 | ⌡ 245 | | 6 | å 134 | û 150 | ª 166 | ╢ 182 | ╞ 198 | ╓ 214 | µ 230 | ÷ 246 | | 7 | ç 135 | ù 151 | º 167 | ╖ 183 | ╟ 199 | ╫ 215 | τ 231 | ≈ 247 | | 8 | ê 136 | ÿ 152 | ¿ 168 | ╕ 184 | ╚ 200 | ╪ 216 | Φ 232 | ° 248 | | 9 | ë 137 | Ö 153 | ⌐ 169 | ╣ 185 | ╔ 201 | ┘ 217 | Θ 233 | ∙ 249 | | A | è 138 | Ü 154 | ¬ 170 | ║ 186 | ╩ 202 | ┌ 218 | Ω 234 | · 250 | | B | ï 139 | ¢ 155 | ½ 171 | ╗ 187 | ╦ 203 | █ 219 | δ 235 | √ 251 | | C | î 140 | £ 156 | ¼ 172 | ╝ 188 | ╠ 204 | ▄ 220 | ∞ 236 | ⁿ 252 | | D | ì 141 | ¥ 157 | ¡ 173 | ╜ 189 | ═ 205 | ▌ 221 | φ 237 | ² 253 | | E | Ä 142 | ₧ 158 | « 174 | ╛ 190 | ╬ 206 | ▐ 222 | ε 238 | ■ 254 | | F | Å 143 | ƒ 159 | » 175 | ┐ 191 | ╧ 207 | ▀ 223 | ∩ 239 | 255 | | BÀI ÐỌC THÊM |  | CHUYỂN ÐỔI HỆ THỐNG SỐ DỰA TRÊN HỆ 8 VÀ HỆ 16 --- oOo --- 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ụ :  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:  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ụ1:  THÔNG QUA HỆ 8: Chia số nhị phân từng bộ 3 số:   THÔNG QUA HỆ 16:Chia số nhị phân thành bộ 4 số   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ụ2:  THÔNG QUA HỆ 8:   THÔNG QUA HỆ 16:   Suy ra: 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ụ 3:  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. 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  Việc chuyển từ hệ 16 sang hệ 8 ta cũng tiến hành 2 bước như vậy. 
|