✪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):
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:
Ở đâ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à:
✪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:
● 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)
(10 ở hệ nhị phân bằng 2 ở hệ thập phân nên ví dụ 1032=2310)
+Phần mũ E = => e=E+127= 10= 2
+Phần định trị m =
Số thực X vừa nhập chuyển về dạng chuẩn IEEE 754/85 là:
✪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
(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ụ: 3F60000016=001111110110000000000000000000002
chia 3 phần: 0 | 01111110 | 11000000000000000000000
_Đổi phần mã lệch e về hệ thập phân: 011111102=12610
_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 2e-127