...Date : 12-07-2020...
Chuẩn IEEE 754/85
✪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.m1,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 2e-127
1110.101=1.110101 x 23=1.110101 x 2130-127
+Mã lệch e=13010=100000102
(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
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.1112=0.87510
Có thể bạn quan tâm
ღ Lưu ý: Mình chỉ sử dụng Fanpage Theza2 để bình luận. Mọi nick khác đều không phải mình.
Mình hiện tại có những việc riêng phải bận cho cuộc sống của mình, sẽ không còn thường xuyên hồi đáp các bình luận, mong được lượng thứ..

...
1/9/1209/66850







XtGem Forum catalog