Chuyển đổi số thực sang dạng nhị phân
Ví dụ, chúng ta có số -3.56125, để chuyển sang dạng nhị phân, chúng ta làm các bước sau:
Bước 1 - Chuyển số ở phần nguyên sang hệ nhị phân
Số ở phần nguyên lúc này là 3, chuyển sang nhị phân sẽ là 11.
Bước 2 - Chuyển số ở phần lẻ sang hệ nhị phân
Số ở phần lẻ lúc này là 0.56125, để chuyển số này sang dạng nhị phân, vì số thực ở dạng IEEE có 2 độ chính xác là đơn và kép. Để chuyển sang dạng chính xác đơn, các bạn nhân số 0.56125 cho 223 (đối với độ chính xác kép là 252). Kết quả thu được là 4708106.
Sau đó, chúng ta sẽ lấy kết quả vừa tính ra được trừ lần lượt cho 222 (đối với độ chính xác kép là 252) đến 20.
- Nếu chúng ta trừ cho 2n mà kết quả < 0 thì bỏ qua.
- Ngược lại thì chúng ta sẽ tiếp tục thực hiện phép trừ.
Chúng ta sẽ ngừng thực hiện phép trừ khi kết quả ra bằng 0. Ví dụ:
- 4708106 – 222 = 513802 ( kết quả > 0, tiếp tục thực hiện)
- 4708106 – 222 – 221 = -1583350 (kết quả < 0, bỏ qua)
- 4708106 – 222 – 220 = -534774 (kết quả < 0, bỏ qua)
- 4708106 – 222 – 219 = -10486 (kết quả < 0, bỏ qua)
- 4708106 – 222 – 218 = 251658 (kết quả > 0, tiếp tục thực hiện)
- 4708106 – 222 – 218 – 217 = 120586 (kết quả > 0, tiếp tục thực hiện)
- …
Và biểu thức thu được sau khi chúng ta thực hiện phép trừ đến 20 là:
4708106 – 222– 218– 217– 216– 215– 214– 212– 210– 29– 28– 23– 21
Từ biểu thức trên, chúng ta có thể dễ dàng viết ra được số 0.56125 ở hệ nhị phân, những bit nào nằm ở những vị trí trùng với số mũ của số 2 trong biểu thức sẽ là 1, nếu không có thì bằng 0:
222120191817161514131211109876543210
10001111101011100001010Vậy số 0.56125 ở dạng nhị phân sẽ là 0.10001111101011100001010.
Bước 3 - Chuyển phần nguyên và phần lẻ đã được tính thành dạng IEEE 754
Sau khi đã chuyển đổi phần nguyên và phần lẻ sang hệ nhị phân, chúng ta gộp 2 phần đó lại sẽ được là:
11.10001111101011100001010
Để chuyển sang dạng IEEE, số của chúng ta phải chuyển sang dạng floating point:
1.110001111101011100001010 x 21
Phần mũ ở dạng IEEE được tính bằng cách lấy số thiên vị cộng với số mũ bình thường (ở độ chính xác đơn, số thiên vị là 127, ở độ chính xác kép, số thiên vị là 1023). Trong ví dụ của chúng ta, phần mũ ở dạng IEEE sẽ là 127 + 1 = 12810 = 100000002
Vì số của chúng ta là số âm cho nên bit dấu đầu tiên sẽ là 1. Vậy, số -3.56125 sẽ được thể hiện dưới dạng IEEE 754 là:
11000000011000111110101110000101
Trong đó:
- 1 là bit quy định dấu.
- 10000000 là dải bit lưu trữ phần mũ.
- 11000111110101110000101 là dải bit lưu trữ phần phân số.