✪Là chuẩn mã hóa số dấu chấm động
✪Cơ số R = 2
✪Có các dạng cơ bản:
● Dạng có độ chính xác đơn, 32-bit
1 bit dấu s|8 bit mã lệch e|23 bit phần lẻ m
● Dạng có độ chính xác kép, 64-bit
1 bit dấu s|11 bit mã lệch e|52 bit phần lẻ m
● Dạng có độ chính xác kép mở rộng, 80-bit
1 bit dấu s|15 bit mã lệch e|64 bit phần lẻ m
✪Xác định:
●
Bit dấu s (sign):
s=0 biểu thị số dương
s=1 biểu thị số âm
●
Mã lệch e (excess) của phần mũ E (Exponent):
E = e – b
Trong đó b là độ lệch (bias):
Dạng 32-bit : b = 127, hay E =
e - 127
Dạng 64-bit : b = 1023, hay E =
e - 1023
Dạng 80-bit : b = 16383, hay E =
e - 16383
●
Phần lẻ m của phần định trị M:
M = 1.m
(
Ví dụ trong tin học 1,77611176 ghi là 1.77611176 nên bạn hiểu 1.m là 1,m.
Ở đây dấu nhân tôi sẽ kí hiệu là "x")
✪Công thức xác định giá trị của số thực X tương ứng là:
X=(-1)s x 1.m x 2e-b
✪
Hướng dẫn chuyển đổi xuôi và ngược:
Tôi chỉ làm ví dụ và hướng dẫn với dạng chính xác đơn 32 bit:
● Công thức:
X=(-1)s x 1.m x 2e-127
● Chuyển từ dạng biểu diễn nhị phân theo chuẩn IEEE 754/85 về số thực X
Nhập số dưới dạng chuẩn IEEE 754/85 chính xác đơn (32 bit):
Ví dụ:
(Bạn có thể nhập số khác để xem lời giải)
● Chuyển từ số thực X về dạng biểu diễn nhị phân theo chuẩn IEEE 754/85
Nhập số thực X:
Ví dụ:
(Bạn có thể nhập số thực khác để xem lời giải)
✪Hướng dẫn làm bài tập dạng chính xác đơn:
●Chuyển từ số thực X về chuẩn IEEE:
_Bit dấu s: X âm thì s=1 ; X dương thì s=0
_Mã lệch e và phần định trị m:
Ví dụ 14.625 thì phần nguyên là 14, phần thập phân là 0.625
Đổi số thực X về hệ nhị phân
14.62510=1110.1012
Đưa phần nhị phân về dạng 1.m x 2
e-127
1110.101=1.110101 x 23=1.110101 x 2130-127
+Mã lệch e=130
10=10000010
2(Nhớ là e phải đủ 8 bit, nếu đổi về cơ số 2 ko đủ 8 bit thì ta thêm 0 vào bên trái đến khi đủ thì thôi
Và một điều nữa là nếu đề chỉ hỏi giá trị mã lệch e thì với X>1 ta chỉ cần đổi phần nguyên về nhị phân là đã có thể tìm được e)
+Phần lẻ m:
Phần lẻ m chính là phần sau dấu phẩy m=110101
Cần phải đủ 23 bit nên ta thêm số 0 vào bên phải m cho đủ
m=11010100000000000000000
●
Chuyển từ chuẩn IEEE về số thực X:
_Chia rõ 3 phần bít dấu, mã lệch e, phần lẻ m
+Nếu đề cho dưới dạng 32 bit nhị phân thì ta chỉ việc chia nó thành 3 phần (1 bit dấu, 8 bit mã lệch, 23 bit phần lẻ)
Ví dụ: 00111111011000000000000000000000
chia 3 phần: 0 | 01111110 | 11000000000000000000000
+Nếu đề cho dưới dạng 8 chữ số ở hệ Hexa thì ta phải đổi nó về nhị phân rồi mới chia làm 3 phần.
(Nhớ phải đủ 32 bit)
Ví dụ: 3F600000
16=00111111011000000000000000000000
2
chia 3 phần: 0 | 01111110 | 11000000000000000000000
_Đổi phần mã lệch e về hệ thập phân: 01111110
2=126
10
_Xác định phần định trị M=1.m: M=1.11000000000000000000000=1.11
_Thay giá trị vào công thức X=(-1)
s x 1.m x 2
e-127
X=(-1)0 x 1.11 x 2126-127=1.11 x 2-1=0.111
_Đổi giá trị tính được về hệ thập phân X=0.111
2=0.875
10
Có thể bạn quan tâm