Đổi từ thập phân sang nhị phân Cách 1: chia dần số đó cho 2, xác định các phần dư, rồi viết các số dư theo chiều ngược lại... Đổi từ thập phân sang nhị phân tiếp Cách 2: phân tích số
Trang 1KỸ THUẬT VI XỬ LÝ
Microprocessors
Dư Thanh Bình
Bộ môn KTMT - Khoa CNTT
Trang 2Lưu ý của tác giả
Dư Thanh Bình
Bộ môn Kỹ thuật Máy tính Khoa Công nghệ Thông tin Trường Đại học Bách Khoa Hà Nội Tel: 8696125 – Mobile: 0979859568 Email: binhdt.ktmt@gmail.com
binhdt@it-hut.edu.vn
Trang 3Nội dung của môn học
Trang 4Bộ môn Kỹ thuật Máy tính, Khoa Công nghệ Thông tin
Trường Đại học Bách Khoa Hà Nội
Trang 5Nội dung chương 2
2.1 Các hệ đếm cơ bản
2.2 Biểu diễn số nguyên
2.3 Biểu diễn số thực
2.4 Biểu diễn kí tự
Trang 62.1 Các hệ đếm cơ bản
Trang 71 Hệ thập phân
00 000 = 0
n n
1 1 1
1
Trang 8Ví dụ
472.38 = 4 x 102 + 7 x 101 + 2 x 100 + 3 x 10-1 + 8 x 10-2
Trang 9Mở rộng cho hệ cơ số r (r>1)
Sử dụng r chữ số có giá trị riêng từ 0 đến r-1 để biểu diễn số
Giả sử có số A được biểu diễn bằng các chữ số của hệ đếm theo cơ số r như sau:
+ +
+ +
+ +
=
n
m i
i i
m m
n n
n n
r a A
r a r
a r
a r
a r
a r
a r
a
Trang 102 Hệ nhị phân
00 000 = 0
11 111 = 2n-1
A = an an-1 … a1 a0 a-1 a-2 … a-m
n n
n
a
A 2 12 1 121 020 12 1 22 2 2
Trang 11Ví dụ
1101001.1011(2) = 26 + 25 + 23 + 20 + 2-1 + 2-3 + 2-4
= 64 + 32 + 8 + 1 + 0.5 + 0.125 + 0.0625 = 105.6875(10)
Trang 12Đổi từ nhị phân sang thập phân
Trang 13Đổi từ thập phân sang nhị phân
Cách 1: chia dần số đó cho 2, xác định các phần dư, rồi viết các số
dư theo chiều ngược lại.
Ví dụ: chuyển đổi 105(10) sang hệ nhị phân ta làm như sau:
Trang 14Đổi từ thập phân sang nhị phân (tiếp)
Cách 2: phân tích số đó thành tổng các lũy thừa của 2, sau đó dựa vào các số mũ để xác định dạng biểu diễn nhị phân.
Ví dụ: 105 = 64 + 32 + 8 + 1 = 26 + 25 + 23 + 20
→ 105(10) = 1101001(2)
Nhân phần lẻ với 2 rồi lấy phần nguyên Sau đó viết các phần
nguyên theo chiều thuận.
Ví dụ: chuyển đổi số 0.6875(10) sang hệ nhị phân:
0.6875 x 2 = 1.3750 phần nguyên = 1 0.375 x 2 = 0.750 phần nguyên = 0 0.75 x 2 = 1.50 phần nguyên = 1 0.5 x 2 = 1.0 phần nguyên = 1 Kết quả là: 0.6875(10) = 0.1011(2)
Trang 15Hệ mười sáu (Hexa)
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
Trang 16Một số ví dụ
Như vậy, ta có: 14988(10) = 3A8C(16)
3A8C (16) = 3 x 163 + 10 x 162 + 8 x 161 +12 x 160
= 12288 + 2560 + 128 + 12 = 14988(10)
Trang 17Cộng trừ số Hexa
Trang 18Nội dung chương 2
2.1 Các hệ đếm cơ bản
2.2 Biểu diễn số nguyên
2.3 Biểu diễn số thực
2.4 Biểu diễn kí tự
Trang 192.2 Biểu diễn số nguyên
Trang 201 Số nguyên không dấu
an-1an-2 a3a2a1a0
+ +
=
1 0
0 0
1 1
2 2
1 1
2
2 2
2
2
n i
i i
n n
n n
a A
a a
a a
A
Trang 22Các ví dụ (tiếp)
X = 0010 1011
Y = 1001 0110 Giải:
X = 0010 1011 = 25 + 23 + 21 + 20
= 32 + 8 + 2 + 1 = 43
Y = 1001 0110 = 27 + 24 + 22 + 21
= 128 + 16 + 4 + 2 = 150
Trang 23Hiện tượng nhớ ra ngoài (carry-out)
(hoặc có mượn từ ngoài vào bit cao nhất) thì đã xảy ra hiện tượng nhớ ra ngoài (carry-out) và kết quả nhận được là sai.
Trang 24 Các bit còn lại biểu diễn độ lớn của số dương đó
Dạng tổng quát của số dương: 0an-2 a2a1a0
Giá trị của số dương:
Dải biểu diễn của số dương: [0, 2n-1-1]
Trang 25Số nguyên có dấu (tiếp)
Được biểu diễn bằng số bù hai của số dương tương ứng
Tìm số bù hai của số nhị phân: đảo bit rồi cộng 1
⇒ Bit an-1 = 1
Dạng tổng quát của số âm: 1an-2 a2a1a0
Giá trị của số âm:
Dải biểu diễn của số âm: [-2n-1, -1]
A
Trang 26Số nguyên có dấu (tiếp)
an-1an-2 a2a1a0
n
a A
Trang 28Các ví dụ (tiếp)
A = 0101 0110
B = 1101 0010 Giải:
A = 26 + 24 + 22 + 21 = 64 + 16 + 4 + 2 = +86
B = -27 + 26 + 24 + 21 = -128 + 64 + 16 + 2 = -46
Trang 29Hiện tượng tràn số học (overflow)
số học (overflow).
Trang 30Ví dụ về hiện tượng Overlow
Trang 313 Biểu diễn số nguyên theo mã BCD
Trang 34Các kiểu lưu trữ số BCD
Ví dụ số 52 được lưu trữ như sau:
Ví dụ số 52 được lưu trữ như sau:
Trang 35Nội dung chương 2
2.1 Các hệ đếm cơ bản
2.2 Biểu diễn số nguyên
2.3 Biểu diễn số thực
2.4 Biểu diễn kí tự
Trang 362.3 Biểu diễn số thực
số thực.
Số dấu chấm tĩnh (fixed-point number):
Dấu chấm là cố định (số bit dành cho phần nguyên và phần lẻ là
cố định)
Dùng trong các bôô vi xử lý hay vi điều khiển thế hệ cũ.
Số dấu chấm đôông (floating-point number):
Dấu chấm không cố định
Dùng trong các bôô vi xử lý hiêôn nay, có đôô chính xác cao hơn.
Trang 37a Số dấu chấm tĩnh
U(a,b) là tâôp các số dấu chấm tĩnh không dấu có a bit trước dấu
chấm và b bit sau dấu chấm.
A(a,b) là tâôp các số dấu chấm tĩnh có dấu có a bit (không kể bit
dấu) trước dấu chấm và b bit sau dấu chấm.
Trang 38Số dấu chấm tĩnh không dấu
Dùng 8 bit để mã hóa cho kiểu số dấu chấm tĩnh, trong đó có 2 bit
dành cho phần lẻ Khoảng xác định của kiểu dữ liệu này là: 0 ≤ R ≤
26 – 2-2 = 63.75
VD: giá trị của 101011.11 = 10101111 x 2-2 = 43.75
Trang 39Số dấu chấm tĩnh có dấu
[-2a, 2a - 2-b]
Dùng 8 bit để biểu diễn số chấm tĩnh có dấu với a=5, b=2
Ta được tâôp các số chấm tĩnh thuôôc A(5,2) nằm trong khoảng:
[-25, 25 – 2-2] hay [-32, 31.75]
Trang 40Đặc điểm của số dấu chấm tĩnh
Khi thực hiện phép nhân ta cần phải có thêm một số lượng bit nhất định để biểu diễn kết quả.
Đối với số không dấu:
U(a1, b1) x U(a2, b2) = U(a1 + a2, b1 + b2)
Đối với số có dấu:
A(a1, b1) x A(a2, b2) = A(a1 + a2 + 1, b1 + b2)
Trang 41b Số dấu chấm động
X = M * RE Trong đó:
Trang 43X = (-1)S x 1.m x 2e-b
Trang 44Ví dụ 1
1 100 0001 0 101 0110 0000 0000 0000 0000 Xác định giá trị thập phân của số thực đó.
Trang 46Nội dung chương 2
2.1 Các hệ đếm cơ bản
2.2 Biểu diễn số nguyên
2.3 Biểu diễn số thực
2.4 Biểu diễn kí tự
Trang 472.4 Biểu diễn kí tự
Là bộ mã 8 bit → mã hóa được cho 28 = 256 kí tự, có mã từ 0016 ÷
Trang 49Kỹ thuật Vi xử lý
HẾT CHƯƠNG 2