You are on page 1of 22

Chương 1

Cấu trúc máy tính

Mã và các hệ đếm

23/10/2008

Chương 1

TS. Nguyen Duc Khoat

Mã và các hệ đếm

† Giới thiệu

„ Các mạch điện tử của máy tính được xây dựng từ các
vi mạch (IC chip).
„ Mỗi vi mạch bao gồm hàng trăm nghìn đèn bán dẫn
(Transistor).
„ Các vi mạch là các mạch số (digital circuit):thao tác
với các mức tín hiệu điện áp rời rạc.
„ Người ta sử dụng ký hiệu 0 và 1 đại diện cho tín hiệu
điện áp rời rạc thấp và cao tương ứng. Các ký hiệu
này được gọi là các chữ số nhị phân (binary digit)
hay các bit.
„ Tất cả các thông tin được xử lý trong máy tính đều
được biểu diễn bằng các chuỗi chữ số 0 và 1.
23/10/2008

TS. Nguyen Duc Khoat

1

Chương 1

Mã và các hệ đếm

† Mã là gì?

† Quy tắc ký hiệu đặc biệt để biểu diễn các thông
tin. Một mã gồm nhiều tự mã, mỗi từ mã có
một ký hiệu xác định và biểu diễn cho một
thông tin.
† Dạng mã thông dụng là mã số nhị phân. Mỗi từ
mã của mã số nhị phân gồm một dãy liên tiếp
các số hạng gọi là bit, mỗi số hạng chỉ có thể
biểu diễn bằng hai chữ số 0 hoặc 1.
† Một mã nhị phân có độ dài n bit sẽ có thể có 2n
tổ hợp khác nhau, và có thể biểu diễn cho 2n
thông tin.

23/10/2008

TS. Nguyen Duc Khoat

Chương 1

Mã và các hệ đếm

† Hệ đếm

„ Định nghĩa:là những mã để biểu diễn các thông tin về
lượng
„ Một số N có thể biểu diễn ở nhiều hệ đếm khác nhau,
công thức tổng quát để biểu diễn số N
Các số nguyên

N =

n

∑a
k =0

k

R

k

+

−m

∑a
k =0

k

R k (1)

Cơ số của hệ đếm

ak = 0,1,2....., R − 1
23/10/2008

TS. Nguyen Duc Khoat

2

ak . † Biểu diễn số N=(11011. Nguyen Duc Khoat Chương 1 Mã và các hệ đếm † Các hệ đếm thông dụng † Hệ thập phân † R = 10 . a k = 0 . Biểu diễn số N=(362..a−m k a k trong dãy số trên đặc trưng cho số hạng a k R Hệ số của công thức (1) R k gọi là trọng số của a k 23/10/2008 TS..01)2 = 1.....10−1 + 5.1.1 . Nguyen Duc Khoat 3 .. a k = 0 ..102 + 6..Chương 1 Mã và các hệ đếm N = anan−1.101 + 2.100 + 2.2−2 = 16 + 8 + 0 + 2 +1+ 0 + 0... 9 .. a−2 .25)10 = 3.24 +1.21 +1. 2 .22 +1.a1a0 .2−1 +1.20 + 0.01)2 N2 = (11011.25 = (27.10−2 † Hệ nhị phân R = 2 . a−1 .23 + 0..25)10 23/10/2008 TS.25)10 N10 = (362...

8 = 5 5. 32 ? co 45 . giu nguyen 1 1. 16 2 + 11 ... 16 1 + 6 . 4 ? co 5-4= 1. ak = 0. F Biểu diễn số N=(2B6)16 N 16 = ( 2 B 6 ) h = 2 . E. B. Nguyen Duc Khoat 4 . C. 1 ? co 1-1=0 23/10/2008 TS. 2 ? khong.Chương 1 Mã và các hệ đếm † Các hệ đếm thông dụng Hệ cơ số 16 (Hệ Hexadecimal) R = 16.1. Nguyen Duc Khoat Chương 1 1 (MSB) 0 1 0 1 1 0 1 (LSB) Least Significant Bit Mã và các hệ đếm † Các hệ đếm thông dụng Hệ cơ số 10 sang cơ số 2 23/10/2008 TS. A.9... 16 0 = ( 694 ) 10 Most Significant Bit Hệ cơ số 10 sang cơ số 2 Trong 173.. 16 ? khong. giu nguyen 45 45.D. 64 ? khong. 128 ? co 173 -128 = 45 45. giu nguyen 13 13.32 = 13 13. 8 ? co 13 ..2.

Chương 1 Mã và các hệ đếm † Các hệ đếm thông dụng Hệ cơ số 16 va cơ số 2 Nhị phân Nhóm nhị phân Dạng Hex 111001111010101011 0011 1001 1110 1010 1011 3 9 E A B Cơ số 16 23/10/2008 39EAB TS. Nguyen Duc Khoat Chương 1 Mã và các hệ đếm † Các hệ đếm thông dụng Bảng chuyển đổi các hệ cơ số 23/10/2008 TS. Nguyen Duc Khoat 5 .

các số này dùng để biểu diễn các đại lượng dương(địa chỉ ô nhớ. Nguyen Duc Khoat 6 . Nguyen Duc Khoat Chương 1 Mã và các hệ đếm † Biểu diễn số nguyên „ Hai bit đặc biệt của một byte hay một word † bit bit † bit bit có trọng số cao nhất(Most Significan Bit. biểu diễn các số nguyên dương.Chương 1 Mã và các hệ đếm † Một số đơn vị cơ bản „ „ „ „ „ „ „ „ Bit = 1 vị trí nhị phân Byte = 1 đon vị gồm 8 Bit Word = 1 đon vị gồm 2 Byte (16 Bit) Double Word = 1 đon vị gồm 4 Byte (32 Bit) Kilobyte = 210 (=1024) Byte Megabyte = 210 Kilobyte (= 220 Byte) Gigabyte = 210 Megabyte (= 230 Byte) Terabyte = 210 Gigabyte (= 240 Byte) 23/10/2008 TS. MSB) là nằm tận cùng bên trái(bit 15/7 đối với word/byte) có trọng số nhỏ nhất(Least Significan Bit. bộ đếm…) 23/10/2008 TS.LSB) là nằm tận cùng bên phải(bit 0). „ Số nguyên không dấu(unsigned integers): có độ dài 8/16 bit của một byte/word.

thay 0 bằng 1 và ngược lại 23/10/2008 TS.(10)10 . „ Số bù 1 là một số nguyên nhận được bằng cách lấy phần bù của các bit của số nguyên đã cho(đảo bit).(245)10 số bù 1 của (10)10 . „ MSB=0 biểu diễn số dương. „ MSB=1 biểu diễn số âm.Số bù 2 của (10)10 TS. „ „ Vd: 0000 1010 1111 0101 +1 1111 0110 23/10/2008 . Nguyen Duc Khoat Chương 1 † Biểu diễn số nguyên Mã và các hệ đếm Số bù 1 (tiếp) „ „ Vd: 0000 1010 1111 0101 . Nguyen Duc Khoat 7 .Chương 1 Mã và các hệ đếm † Biểu diễn số nguyên „ Số nguyên có dấu(signed integers):có thể là số dương hoặc số âm. „ Các số âm được lưu trong VXL. VĐK dưới dạng số bù hai. „ Bit có trọng số cao nhất MSB được dùng để biểu diễn dấu của số.(10)10 .(245)10 số bù 1 của 1010 Số bù 2 là một số nguyên là một số nguyên nhận được bằng cách cộng 1 vào số bù 1 của chính nó.

Chương 1 † Biểu diễn số nguyên Mã và các hệ đếm Số dương „ 23/10/2008 TS. Nguyen Duc Khoat 8 . VĐK TS. Nguyen Duc Khoat Chương 1 † Biểu diễn số nguyên Mã và các hệ đếm Số âm „ „ „ 23/10/2008 Cách tìm: „ Mã bù 2 „ 2n _ |X| „ Vd: Tìm biểu diễn nhị phân có độ dài 8 bits của số 1 -1=28-1=256-1=(255)10=(11111111)2 Chú ý: Mã bù 2 được sử dụng trong cấu trúc bên trong của đơn vị xử lý toán học ALU của VXL.

Nguyen Duc Khoat 9 . Nguyen Duc Khoat Chương 1 † Biểu diễn số nguyên † Số âm (tiếp) Mã và các hệ đếm „ Một số có độ dài n bits có 2n tổ hợp khác nhau trong đó 23/10/2008 „ [0…2n-1-1] biểu diễn số dương „ [2n-1…2n-1] biểu diễn số âm TS.Chương 1 † Biểu diễn số nguyên † Số âm (tiếp) 23/10/2008 Mã và các hệ đếm TS.

dương của số có độ dài 4bits Phần số dương Bit dấu Phần số âm 23/10/2008 Chương 1 TS.Chương 1 † Biểu diễn số nguyên † Số âm (tiếp) Mã và các hệ đếm „ Biểu diến số âm. Nguyen Duc Khoat 10 . Nguyen Duc Khoat Mã và các hệ đếm † Biểu diễn số nguyên † Số âm (tiếp) „ Biểu diến số âm. dương của số có độ dài 4bits 23/10/2008 TS.

Nguyen Duc Khoat Chương 1 Mã và các hệ đếm † Dấu phẩy tĩnh và động † Dấu phẩy tĩnh † 23/10/2008 Sử dụng một ký hiệu dấu chấm ảo để biểu diễn một số thực. Nguyen Duc Khoat 11 .Chương 1 Mã và các hệ đếm † Biểu diễn số nguyên † Số âm (tiếp) Vd „ 23/10/2008 TS. Dấu chấm ảo được sử dụng trong từ dữ liệu để phân biệt và ngăn cách giữa phần biểu diễn giá trị nguyên và một phần lẻ thập phân của dữ liệu. TS.

01 ) 2 N 2 = (011011 . Nguyen Duc Khoat 12 .2 3 + 0.Chương 1 Mã và các hệ đếm † Dấu phẩy tĩnh và động † Dấu phẩy tĩnh † Vd N 2 = ( 011011 .2 4 + 1.2 −2 = 16 + 8 + 0 + 2 + 1 + 0 + 0.2 −1 + 1.21 + 1.25 = ( 27.25)10 23/10/2008 TS.2 2 + 1. Nguyen Duc Khoat Chương 1 † Dấu phẩy tĩnh và động † Dấu phẩy tĩnh Mã và các hệ đếm Nhược điểm: vùng biểu diễn số nguyên bị hạn chế bởi dấu phảy tĩnh được gán cố định -> hiện tượng tràn số khi thực hiện các phép nhân hai số lớn Dấu phẩy động là một phương pháp biểu diễn số khoa học bao gồm 3 phần: „ † † † 23/10/2008 Phần biểu diến số dương hay âm Phần biểu diễn số mantissa Phầnbiểu diễn số exponent TS.2 0 + 0.01) 2 = 1.

7000x101=.Chương 1 Mã và các hệ đếm † Dấu phẩy tĩnh và động † Dấu phẩy động (dạng nhị phân) (-1)S x M x 2e-bias Mantissa Exponent có độ dài 8 bits cho số 32 bits Có độ dài 11 bits cho số 64 bits Bias =-127 cho số 32 bits =-1023 cho số 64 bits 23/10/2008 TS.f hay 0. „ Theo IEEE 754 dạng của M là 1. Nguyen Duc Khoat Chương 1 Mã và các hệ đếm † Dấu phẩy tĩnh và động † Dấu phẩy động (dạng nhị phân) (-1)S x M x 2e-bias † Mantissa:để biểu diễn cơ số.f tuỳ theo định dạng.000x10-1= 0.007x10-3 23/10/2008 TS.f (số 1 trong định dạng này là số ẩn Æ chỉ cần quan tâm tới f) „ 1≤ M <2 „ 7=7.000x100=70. Nguyen Duc Khoat 13 . dạng của M là 1.

375)10 ⎯ 0.5x2 = 1.375 )10 = (11100 .75 0 : bit co trong so 2 -1 0.0 1 : bit co trong so 2 -3 ( 28 .1100011) × 2 4 4 = e − 127 ⇒ e = 131 = (10000011) 2 23/10/2008 exponent TS.5 1 : bit co trong so 2 -2 0.375x2 = 0.375 dưới dạng dấu phẩy động có độ dài 32 bits theo IEEE 754 ⎯→ N 2 (28)10 = (00011100) 2 (0.75x2 = 1.Chương 1 Mã và các hệ đếm † Dấu phẩy tĩnh và động † Dấu phẩy động (chuẩn IEEE 754) 23/10/2008 TS.011) 2 = (11100.011) × 20 = (1. Nguyen Duc Khoat Chương 1 Mã và các hệ đếm † Dấu phẩy tĩnh và động † Dấu phẩy động (chuẩn IEEE 754) † Vd:biểu diễn số 28. Nguyen Duc Khoat 14 .

Chương 1 Mã và các hệ đếm † Dấu phẩy tĩnh và động † Dấu phẩy động (chuẩn IEEE 754) „ Vd (tiếp) † Mantissa: có độ dài 23 bits Æmở rộng 1. Nguyen Duc Khoat 15 .00001011 =1/32+1/128+1/256 =11/256 =0. 011 0000 0000 0000 0000 0000 23/10/2008 -0.011x2-5 =0.04296875 TS. và thêm phần thập phân cho đến khi đủ 23 bits 1100 0110000000000 000000 † Kết qủa Mantissa 0 10000011 1100 0110000000000 000000 Bit dấu Exponent 23/10/2008 TS.1100011 bỏ 1. Nguyen Duc Khoat Chương 1 Mã và các hệ đếm † Dấu phẩy tĩnh và động † Dấu phẩy động (chuẩn IEEE 754) „ Vd (tiếp) † Tìm số dạng thập phân của số dấu phẩy động biểu diễn dưới dạng 32 bits sau: BD300000h ( BD300000)16 = (1011 1101 0011 0000 0000 0000 0000 0000) 2 Bit dấu=1 số âm 1.04296875 Exponent=0111 1010 =122 Æsố mũ:122-127 =-5 Mantissa=011 0000 0000 0000 0000 0000 =1.

B NOR: L1 = ¨C1 +C2¨. C2. S = ¨A.B¨ AND 23/10/2008 NAND TS. Nguyen Duc Khoat Chương 1 † NOR Mã và các hệ đếm Các phép toán học trong các hệ đếm „ Phép cộng nhị nhân † Các phần tử logic XOR OR AND NOT NOR 23/10/2008 NAND TS.C2¨. S = A + B AND: L2 = C1 . S = A . Nguyen Duc Khoat 16 . S = ¨A + B¨ NAND: L2 = ¨C1.Chương 1 † Mã và các hệ đếm Các phép toán học trong các hệ đếm „ Phép cộng nhị nhân Các phần tử logic † „ „ „ „ OR OR: L1 = C1 + C2.

Nguyen Duc Khoat 17 . c: carry a b s c a 0 0 0 0 =1 s & c 0 1 1 0 Mạch logic ? 1 0 1 0 b 1 1 0 1 23/10/2008 TS. ci-1: carry của phép cộng i-1 a i b i c i p i g i r i s i c i+1 0 0 0 0 0 0 0 0 c 0 0 1 0 1 0 0 1 0 1 1 0 0 1 0 0 1 0 1 a i i 1 0 0 1 0 0 1 0 0 1 0 0 0 1 0 1 0 1 1 1 0 1 0 1 2 1 0 1 1 0 1 0 1 2 1 1 1 0 1 0 1 1 3 23/10/2008 i =1 r & & b i ≥1 g 2 i p Mạch logic ? 1 s =1 i c i+1 i TS.Chương 1 Mã và các hệ đếm Các phép toán học trong các hệ đếm † Phép cộng nhị nhân „ † Phép cộng chưa hoàn chỉnh S=a+b . Nguyen Duc Khoat Chương 1 Mã và các hệ đếm Các phép toán học trong các hệ đếm † Phép cộng nhị nhân „ † Phép cộng hoàn chỉnh Si=ai+bi+ci-1 .

Nguyen Duc Khoat 18 .Chương 1 Mã và các hệ đếm Các phép toán học trong các hệ đếm † „ Phép trừ nhị nhân S=a-b . Nguyen Duc Khoat Chương 1 Mã và các hệ đếm Các phép toán học trong các hệ đếm † „ Phép trừ =phép cộng? S = A − B = A + B +1 A: A - B: + + B Mã bù 2 1 S: 23/10/2008 TS. c: carry s a b s c =1 a 0 0 0 0 =1 & 1 0 1 1 1 1 0 1 0 =1 c Mạch logic ? ≥1 & b & 1 1 0 0 23/10/2008 TS.

Nguyen Duc Khoat 19 . Nguyen Duc Khoat Chương 1 † Mã và các hệ đếm Các phép toán học trong các hệ đếm „ Phép nhân † Nhân số có dấu với số không dấu (số bị nhân âm) Vd: Số bị nhân: Số nhân: x + -3780 23/10/2008 TS.Chương 1 † Mã và các hệ đếm Các phép toán học trong các hệ đếm „ Phép nhân † Nhân hai số không dấu Vd: Số bị nhân: Số nhân: + 23/10/2008 TS.

Nguyen Duc Khoat Chương 1 † Mã và các hệ đếm Bảng mã ASCII (American Standard Code for Information Interchange) ASCII standard (127 ký tự-6bits) ASCII étendu (255 ký tự.Chương 1 † Mã và các hệ đếm Các phép toán học trong các hệ đếm „ Phép nhân † Nhân số có dấu với số không dấu (số nhân âm) Vd: Số bị nhân: x Số nhân: + + -6825 23/10/2008 TS. Nguyen Duc Khoat 20 . các mã còn lại không thể in được ra màn hình 23/10/2008 TS.7bits) Trong bảng mã ASCII chỉ có 95 ký tự (32 ÷ 126) là có thể in được.

1011100011000011 ra số hex. F2DEh. 124 ra số nhị phân. Nguyen Duc Khoat 21 . A5BCh.Chương 1 † Mã và các hệ đếm Bảng mã ASCII (American Standard Code for Information Interchange) ASCII standard (127 ký tự-6bits) 23/10/2008 Chương 1 † ASCII étendu (255 ký tự. Biểu diễn các số sau dưới dạng số hex 16 bit: 231. Nguyen Duc Khoat Mã và các hệ đếm Bài tập Đổi những số nhị phân và số hex sau ra số thập phân:1110. DE2Ah ra số nhị phân. -198 Thực hiện các phép cộng sau: 1001001b + 1000110b 11010000b + 01010011b B2CDh + 1234h DEFC1h + AC342h 23/10/2008 TS. 100101011110. 23390 ra số hex Đổi những số sau: 10011100. 3245. 954. ABCDh. Đổi những số thập phân sau: 98.7bits) TS. -37.

Nguyen Duc Khoat 22 . 23/10/2008 TS. Hãy chuyển các số thập phân thành mã ASCII.Chương 1 † Mã và các hệ đếm Bài tập Thực hiện các phép trừ sau: 11011b – 10011b 01110111b – 00101011b 5FFCDh – 345FCh 1234Fh – 0FCD1h Biểu diễn các số được mã hoá dưới dạng ASCII sau ra ký tự: 41 74 74 61 63 6B 20 61 77 6E Để chuyển một chữ cái thành một chữ in chứa trong một byte thì cần phải làm như thế nào? (hãy dựa vào bảng ASCII).