Trong máy tính chỉ có thể biểu diễn được dạng nhị phân, vậy nên để lưu số thực vào máy tính thì chúng ta cũng cần chuyển nó sang dạng nhị phân, và chuẩn hiện nay thường được sử dụng là IEEE 754.
Chuẩn IEEE 754
Do đề thi hầu hết đề cập đến chuẩn IEEE 754 32bit nên mình sẽ chỉ giới thiệu chuẩn này thôi nhé. Thì chuẩn này quy định format của 1 số float ở dạng nhị phân như sau:
[sign - 1 bit][exponent - 8 bit][fraction - 32 bit]
Trong đó:
- Sign: Là bit dấu, 0 nghĩa là số dương, 1 nghĩa là số âm.
- Exponent: Là các bit của phần mũ.
- Fraction: Là các bit của phần lẻ (phần thập phân)
Các bước chuyển đổi
Để chuyển 123.45 sang dạng nhị phân chúng ta có thể qua các bước sau:
Bước 1 - Chuyển dấu sang nhị phân.
Vì đây là số dương nên sign = 0.
Bước 2 - Chuyển phần nguyên sang nhị phân
Ở đây chúng ta có 123, chuyển sang nhị phân là: 1111011.
Bước 3 - Chuyển số mũ sang nhị phân
Chúng ta có thể viết 123 = 1111011 = 1.111011 x 2^6, như vậy chúng ta có số mũ là 6. Vì số mũ có thể là âm nên phần mũ chúng ta cần cộng với 127, vậy chúng ta có:
Exponent = 6 + 127 = 133 = 10000101.
Bước 2 - Chuyển phần lẻ (thập phân) sang nhị phân
Ở đây chúng ta có 0.45 là dạng số thập phân, để chuyển sang dạng nhịn phân chúng ta sẽ:
- Nhân 0.45 với 2 = 0.9, ghi nhận 0 và giữ lại 0.9.
- Nhân 0.9 với 2 = 1.8, ghi nhận 1 và giữ lại 0.8.
- Nhân 0.8 với 2 = 1.6, ghi nhận 1 và giữ lại 0.6.
- Nhân 0.6 với 2 = 1.2, ghi nhận 1 và giữ lại 0.2.
- Nhân 0.2 với 2 = 0.4, ghi nhận 0 và giữ lại 0.4.
- Nhân 0.4 với 2 = 0.8, ghi nhận 0 và giữ lại 0.8.
- Nhân 0.8 với 2 = 1.6, ghi nhận 1 và giữ lại 0.6.
- Nhân 0.6 với 2 = 1.2, ghi nhận 1 và giữ lại 0.2.
- Nhân 0.2 với 2 = 0.4, ghi nhận 0 và giữ lại 0.4.
- Nhân 0.4 với 2 = 0.8, ghi nhận 0 và giữ lại 0.8.
- Nhân 0.8 với 2 = 1.6, ghi nhận 1 và giữ lại 0.6.
- Nhân 0.6 với 2 = 1.2, ghi nhận 1 và giữ lại 0.2.
- Nhân 0.2 với 2 = 0.4, ghi nhận 0 và giữ lại 0.4.
- Nhân 0.4 với 2 = 0.8, ghi nhận 0 và giữ lại 0.8.
- Nhân 0.8 với 2 = 1.6, ghi nhận 1 và giữ lại 0.6.
- Nhân 0.6 với 2 = 1.2, ghi nhận 1 và giữ lại 0.2.
- Nhân 0.2 với 2 = 0.4, ghi nhận 0 và giữ lại 0.4.
Vì tổng số bit của phần lẻ là 23 bit mà ở phía trên chúng ta đã có 6 bit của phần lẻ 1.111011 vậy nên ở bước này chúng ta chỉ cần lấy 23 - 6 = 17 bước. Như vậy chúng ta sẽ có phần lẻ:
Fraction = 0.45 = [111011][01110011001100110]
Trong đó 111011 được lấy từ phần lẻ của 123 sau khi quy số nguyên về số thực ở bước số 3. Còn 01110011001100110 được thu thập từ các số được ghi nhận ở 17 bước ở trên.
Bước 4. Ghép mọi thứ lại với nhau chúng ta có
123.45 = [0][10000101][11101101110011001100110]
Bạn có thể kiểm tra kết quả thông qua công cụ này.
Tổng kết lại
Như vậy chúng ta đã cùng nhau chuyển số thập phân 123.45 sang dạng nhị phân theo chuẩn IEEE 754.
Cám ơn bạn đã quan tâm đến bài viết|video này. Để nhận được thêm các kiến thức bổ ích bạn có thể:
- Đọc các bài viết của TechMaster trên facebook: https://www.facebook.com/techmastervn
- Xem các video của TechMaster qua Youtube: https://www.youtube.com/@TechMasterVietnam nếu bạn thấy video/bài viết hay bạn có thể theo dõi kênh của TechMaster để nhận được thông báo về các video mới nhất nhé.
- Chat với techmaster qua Discord: https://discord.gg/yQjRTFXb7a
Bình luận