Đổi từ nhị phân sang thập phân Áp dụng công thức tính giá trị của một số nhị phân... Đổi từ thập phân sang nhị phân Thực hiện chuyển đổi phần nguyên và phần lẻ riêng.. Chuyển đổi phầ
Trang 1Bộ 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 2Nộ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 32.1 Các hệ đếm cơ bản
1 Hệ thập phân (Decimal System)
2 Hệ nhị phân (Binary System)
3 Hệ mười sáu (Hexadecimal System)
Trang 4n n
n
a
Trang 5Ví dụ
Số thập phân 472.38 có giá trị được hiểu như sau:
472.38 = 4 x 102 + 7 x 101 + 2 x 100 + 3 x 10-1 + 8 x 10-2
Trang 6Mở 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:
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 72 Hệ nhị phân
Sử dụng 2 chữ số: 0,1
Chữ số nhị phân gọi là bit (binary digit)
Bit là đơn vị thông tin nhỏ nhất
Dùng n bit có thể biểu diễn được 2n giá trị khác nhau:
n n
n
a
A 2 12 1 121 020 12 1 22 2 2
Trang 9Đổi từ nhị phân sang thập phân
Áp dụng công thức tính giá trị của một số nhị phân.
Trang 10Đổi từ thập phân sang nhị phân
Thực hiện chuyển đổi phần nguyên và phần lẻ riêng
Chuyển đổi phần nguyê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 11Đổi từ thập phân sang nhị phân (tiếp)
Chuyển đổi phần nguyê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 = 2 6 + 2 5 + 2 3 + 2 0
105 (10) = 1101001 (2)
Chuyển đổi phần lẻ:
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 12Hệ mười sáu (Hexa)
Trang 13Một số ví dụ
Nhị phân Hexa: 11 1011 1110 0110(2) = 3BE6(16)
Hexa Nhị phân: 3E8(16) = 11 1110 1000(2)
Hexa Thập phân: 3A8C ?
3A8C (16) = 3 x 16 3 + 10 x 16 2 + 8 x 16 1 +12 x 16 0
= 12288 + 2560 + 128 + 12 = 14988(10)
Trang 142BC5 -
Trang 15Nộ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 162.2 Biểu diễn số nguyên
1 Số nguyên không dấu
2 Số nguyên có dấu
3 Biểu diễn số nguyên theo mã BCD
Trang 171 Số nguyên không dấu
Dạng tổng quát: giả sử dùng n bit để biểu diễn cho một số
nguyên không dấu A:
an-1an-2 a3a2a1a0
Giá trị của A được tính như sau:
Dải biểu diễn của A: từ 0 đến 2n-1
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 19Các ví dụ (tiếp)
biểu diễn bằng 8 bit như sau:
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 20Hiện tượng nhớ ra ngoài (carry-out)
dấu, nếu kết quả có nhớ ra khỏi bit cao nhất (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ả
Trang 21 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 a 2 a 1 a 0
Giá trị của số dương:
Dải biểu diễn của số dương: [0, 2 n-1 -1]
2
n
i
i i
a A
Trang 22Số nguyên có dấu (tiếp)
Với số âm:
Đượ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 a n-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: [-2 n-1 , -1]
i
i i
A
Trang 23Số nguyên có dấu (tiếp)
Dạng tổng quát của số nguyên có dấu A:
an-1an-2 a2a1a0
Giá trị của A được xác định như sau:
Dải biểu diễn: [-2n-1, 2n-1-1]
n
a A
Trang 24Cá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 = +50 B = -70Giải:
Trang 25Các ví dụ (tiếp)
Ví dụ 2 Xác định giá trị của các số nguyên có dấu
8 bit sau đây:
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 26Hiện tượng tràn số học (overflow)
dấu ngược lại thì đã xảy ra hiện tượng tràn số học (overflow).
Trang 27Ví dụ về hiện tượng Overlow
Trang 283 Biểu diễn số nguyên theo mã BCD
Trang 31Các kiểu lưu trữ số BCD
BCD dạng nén (Packed BCD): Hai số BCD được lưu trữ
trong 1 Byte
Ví dụ số 52 được lưu trữ như sau:
BCD dạng không nén (Unpacked BCD): Mỗi số BCD được lưu trữ trong 4 bit thấp của mỗi Byte
Ví dụ số 52 được lưu trữ như sau:
0101 0010
0101 0010
Trang 32Nộ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 332.3 Biểu diễn số thực
Quy ước: "dấu chấm" (point) được hiểu là kí hiệu
ngăn cách giữa phần nguyên và phần lẻ của 1 số
thực.
Có 2 cách biểu diễn số thực trong máy tính:
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 34a Số dấu chấm tĩnh
Số bit dành cho phần nguyên và số bit phần lẻ là
cố định.
Giả sử rằng:
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 35Số dấu chấm tĩnh không dấu
[0, 2a - 2-b]
Ví dụ:
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 36Số dấu chấm tĩnh có dấu
[-2a, 2a - 2-b]
Ví dụ:
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 37Đặc điểm của số dấu chấm tĩnh
Độ chính xác khi thực hiện các phép toán không
cao, đặc biệt là với phép tính nhân.
Ví dụ:
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 38b Số dấu chấm động
Trang 42Ví dụ 2
động theo chuẩn IEEE 754 dạng 32 bit
Trang 43Nộ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 442.4 Biểu diễn kí tự
tự.
Code for Information Interchange)
Là bộ mã 8 bit mã hóa được cho 28 = 256 kí tự, có mã
Trang 46Kỹ thuật Vi xử lý
HẾT CHƯƠNG 2