Tải bản đầy đủ (.pdf) (8 trang)

Bài tập vi xử lý có đáp án_HW1

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (449.11 KB, 8 trang )

KHOA ĐIỆN TỬ VIỄN THÔNG
BỘ MÔN ĐIỆN TỬ TIN HỌC

MÔN HỌC: KỸ THUẬT VI XỬ LÝ
Học kỳ: 2 Năm học: 2009-2010

BÀI GIẢI BÀI TẬP VỀ NHÀ SỐ 1

Bài 1 (10 điểm)
Đổi các số thập phân sau đây sang hệ nhị phân, hệ cơ số 8 và hệ 16
a. 23.75
b. 107

Bài giải:
Để đổi một số từ hệ thập phân sang hệ cơ số bất kỳ r ta đổi riêng phần nguyên và
phần thập phân. Đối với phần nguyên, tiến hành chia số cần đổi cho cơ số r, sau mỗi
lần chia ghi lại số dư và tiếp tục chia thương cho r cho đến khi được thương bằng 0,
viết số dư theo thứ tự ngược lại sẽ được số cần tìm. Đối với phần thập phân, ta nhân
phần thập phân với r, sau mỗi lần nhân ghi lại phần nguyên, tiếp tục nhân phần thập
phân với r cho đến khi phần thập phân bằng 0 hoặc đến khi lấy đủ chữ số cần thiết
sau dấu phẩy thì dừng lại. Đọc phần nguyên của các phép nhân theo thứ tự xuất hiện
ta thu được kết quả cần tìm.

a. Đổi 23.75 từ hệ thập phân sang nhị phân:

Ta đổi 23 từ hệ thập phân sang nhị phân và đổi 0.75 từ hệ thập phân sang nhị
phân theo quy tắc trên:

23 |__2______
1 11 |__2______
1 5 |__2______


1 2 |__2______
0 1 |__2______
1 0


=> (23)
10
= (10111)
2


0.75 x 2 = 1.5
0.5 x 2 = 1.0
=> (0.75)
10
= (0.11)
2
=> (23.75)
10
= (10111.11)
2

Đổi 23.75 từ hệ thập phân sang hệ cơ số 8

23 |__8______
7 2 |__8______
2 0


0.75 x 8 = 6.0

=> (23.75)
10
= (27.6)
8

Đổi 23.75 từ hệ thập phân sang hệ cơ số 16


23 |__16______
7 1 |__16______
1 0


0.75 x 16 = 12.0
=> (23.75)
10
= (17.C)
16

b. Đổi 107 từ hệ thập phân sang hệ nhị phân, hệ 8 và hệ 16

Tương tự như câu a ta có:
(107)
10
=(1101011)
2
(107)
10
= (153)
8

(107)
10
= (6B)
16

Cách 2 : Có thể tiến hành đổi từ hệ thập phân sang hệ nhị phân, hệ 8 và hệ 16 như sau:

a . (23.75)
10
= 2
4
+ 2
2
+ 2
1
+ 2
0
+ 2
-1
+ 2
-2
=> (23.75)
10
= (10111.11)
2

(23.75)
10
= 2*8
1

+ 7*8
0
+ 6*8
-1
=> (23.75)
10
= (27.6)
8

(23.75)
10
= 1*16
1
+ 7*16
0
+ 12*16
-1
=> (23.75)
10
= (17.C)
16

b . (107)
10
= 2
6
+ 2
5
+ 2
3

+ 2
1
+ 2
0
=> (107)
10
= (1101011)
2

(107)
10
= 1*8
2
+ 5*8
1
+ 3*8
0
=> (107)
10
= (153)
8

(107)
10
= 6*16
1
+ 11*16
0
=> (107)
10

= (6B)
16



Bài 2 (10 điểm)
Đổi các số nhị phân sang hệ thập phân, hệ cơ số 8 và hệ 16
a. 1010110.01
b. 101011.0101

Bài giải:
a. (1010110.01)
2
= 2
6
+ 2
4
+ 2
2
+ 2
1
+ 2
-2
= (86.25)
10
(1010110.01)
2
= 001 010 110.010 = (126.2)
8
(thay


3 chữ số nhị phân bằng 1 chữ số
tương ứng trong hệ 8)
(1010110.01)
2
= 0101 0110.0100 = (56.4)
16

(thay

4 chữ số nhị phân bằng 1 chữ số
tương ứng trong hệ 16)

b. Tương tự như câu a ta có:
(101011.0101)
2
= 2
5
+ 2
3
+ 2
1
+ 2
0
+ 2
-2
+ 2
-4
= (43.3125)
10


(101011.0101)
2
= (53.24)
8

(101011.0101)
2
= (2B.5)
16




Bài 3 (10 điểm)
Đổi các số thập phân sau sang số nhị phân 8 bit có dấu
a. +32
b. -12
c. +100
d. -92

Bài giải: Ta có kết quả theo 2 cách biểu diễn số nhị phân có dấu như sau:
 sign-magnitude.
a. (+32)
10
=(00100000)
2

b. (-12 )
10

=(10001100)
2

c. (+100)
10
=(01100100)
2

d. (-92)
10
=(11011100)
2

 Bù hai.
a. (+32)
10
=(00100000)
2

b. (+12)
10
= (00001100)
2

Bù 1: 11110011 ( đảo bít )
+ 1
Bù 2: 11110100 = (-12)
10

Vậy : (-12)

10
= (11110100)
2


c.(+100)
10
=(01100100)
2

d. (+92)
10
= (01011100)
2

Bù 1: 10100011 ( đảo bít )
+ 1
Bù 2: 10100100 = (-92)
10

Vậy : (-92)
10
= (10100100)
2




Bài 4 (20 điểm)
Xây dựng lưu đồ thuật toán tính tổng (addition) và hiệu (subtraction) của 2 số nhị phân có

dấu biểu diễn theo kiểu dấu - độ lớn (sign-magnitude) và biểu diễn theo kiểu số bù hai.
So sánh 2 kiểu biểu diễn này.
Bài giải:

1. Sign – Magnitude Addition & Subtraction :
Ta ký hiệu B1, B2 là hai số hạng và Br là kết quả của phép tính theo kiểu sign-magnitude
như sau:
B
1
= <s
1
, m
1
> ; B
2
= <s
2
, m
2
> ; B
r
= <s
r
, m
r
>































2 . Bù 2 (Two’s complement) : B
1
; B
2

; B
r












Start Subtraction
Start Addition
s
2
= s
2

(trừ  cộng với số đối)
s
1
= s
2

m
1
< m

2

m
1
>m
2

m
r
= 0
s
r
= 0
m
r
= m
2
-m
1
s
r
= s
2

m
r
= m
1
-m
2

s
r
= s
1

m
r
= m
1
+m
2
s
r
= s
1

End
Start Subtraction
Start Addition
B
2
= B
2
’ + 1
(B
2
’ là số bù 1 của B
2
)
B

r
= B
1
+ B
2

End
Yes
Yes
Yes

So sánh 2 cách biểu diễn số nguyên có dấu:


Sign - Magnitude
Bù 2
Biểu diễn số 0
Có 2 cách biểu diễn số 0: +0 và -0
Ví dụ: Với số 4 bit
+0 = 0000 và -0=1000
Có duy nhất 1 cách biểu
diễn số 0
Với số 4 bit: 0=0000
Phạm vi biểu diễn
-2
n-1
-1

÷ + 2
n-1

-1
Ví dụ: Với số 4 bit có dấu
-7 ÷ + 7
-2
n-1
÷ + 2
n-1
-1
Ví dụ: Với số 4 bit có dấu
-8 ÷ + 7
Độ phức tạp của thuật
toán tính tổng và hiệu
Rất phưc tạp dẫn tới việc thực
hiện phép nhân và chia cũng rất
phức tạp
Đơn giản
Bít dấu
Bít MSB là bít dấu: 0 là số dương
và 1 là số âm
Bít MSB là bít dấu: 0 là số
dương và 1 là số âm

Với những ưu điểm nổi bật, cách biểu diễn số nguyên có dấu theo kiểu số bù 2 được sử
dụng trong hầu hết các hệ thống số và máy tính.


Bài 5 (10 điểm)
Biểu diễn các số thập phân sau dưới dạng số dấu phẩy động có độ chính xác đơn:
a. +1.5
b. -10.625

c. +100.25
Bài giải:

a . (+1.5)
10
= (1.1)
2

Sign Bit s = 0 ( số dương )
Normalized Mantissa : 1.1 = 1.1*2
0

Biased Exponent : 0 + 127 = 127 = 01111111
IEEE format : 0 01111111 10000000000000000000000
22 chữ số 0
b . (-10.625)
10

Sign Bit s = 1 (số âm)
Mantissa : (10.625)
10
= (1010.101)
2

Normalized Mantissa : 1010.101 = 1.010101*2
3

Biased Exponent : 3+127 = 130 = 10000010
IEEE format : 1 10000010 01010100000000000000000
17 chữ số 0

c . (+100.25)
10
= (1100100.01)
2

Sign Bit s = 0 (số dương)
Normalized Mantissa : 1100100.01 = 1.10010001*2
6

Biased Exponent : 6+127 = 133 = 10000101
IEEE format : 0 10000101 10010001000000000000000
15 chữ số 0
Bài 6 (10 điểm)
Đổi các số dấu phẩy động có độ chính xác đơn sau đây sang số thập phân
a. 0 10000000 110000000000000000000000
b. 1 01111111 000000000000000000000000

Bài giải:

a . 0 10000000 11000000000000000000000
Sign Bit s = 0 => Số dương
Biased Exponent 10000000 = 128 =>Exponent = 128 – 127 = 1
Mantissa : 1.11*2
1
= (11.1)
2
= (3.5)
10

Số cần tìm : (+3.5)

b . 1 01111111 00000000000000000000000
Sign Bit s = 1 => Số âm
Biased Exponent 01111111 = 127 => Exponent = 127 – 127 = 0
Mantissa : 1*2
0
= 1
Số cần tìm : (-1)



Bài 7 (10 điểm) Thưc hiện các phép biến đổi sau:
a. (10001001)
packed BCD
=> ( ?)
10
b. (301)
10
=>(?)
packed BCD


Bài giải:
a . (10001001)
packed BCD
= (89)
10

b . (301)
10
= (001100000001)

packed BCD


Bài 8 (20 điểm)
Tìm trên Internet sơ đồ khối của một thiết bị điện tử có sử dụng vi xử lý. Xác định các
thành phần của hệ vi xử lý trên sơ đồ khối đó.

Ví dụ: Sơ đồ khối của Iphone 3Gs



×