GIỚI THIỆU VỀSỐTHỰCCHẤMĐỘNG Tại lại cần sốthựcchấm động? Vì nhớ máy tính có giới hạn, lưu trữ số với độ xác vô hạn bất chấp dùng kiểu nhị phân hay thập phân Tại mức ta cần phải cắt giảm bớt Nhưng độ xác đến đủ? Bao nhiêu chữ số nguyên chữ số phần thực? • • • Với công nhân xây dựng, 10 met hay 10.0001 met nhau, phép tính không quan tâm đến độ xác nhỏ Nhưng với người thiết kế microchip, 0.0001 met khác biệt lớn Trong vật lý người ta cần tốc độ ánh sáng (3*109) số hấp dẫn newton (0.0000000000667) để tính toán Có thể thấy để đáp ứng nhu cầu tính toán đa dạng yêu cầu độ xác người ta đưa sốchấmđộng Biểu diễn sốchấm động: Ta chuẩn hóa dạng: ±1.F * 2E • • F: Significand ( Phần thập phân không dấu) E: Exponent (Phần số mũ) Ví dụ: +0.0937510 = 0.000112 = +1.1 * 2-4 Có nhiều chuẩn chuẩn IEEE 754 dùng nhiều để lưu trữ số thập phân theo dấuchấmđộng máy tính, gồm dạng: Sốchấmđộng xác đơn (32 bits): Sốchấmđộng xác kép (64 bits): Sign: Bit dấu (1: số âm, 0: số dương) Exponent: Số mũ (Biểu diễn với dạng số K (Biased) với: • • Chính xác đơn: K = 127 (2n-1- = 28-1 - 1) với n số bit lưu trữ Exponent Chính xác kép: K = 1023 (2n-1- = 211-1- 1) Significand (Fraction): Phần định trị (phần lẻ sau dấu chấm) Ví dụ: Biểu diễn sốthực sau theo dạng sốchấmđộng xác đơn (32 bit): X = -5.25 Bước 1: Đổi X sang hệ nhị phân • X = -5.2510 = -101.012 Bước 2: Chuẩn hóa theo dạng ±1.F * 2E • X = -5.25 = -101.01 = -1.0101 * 22 Bước 3: Biểu diễn Floating Point • Số âm: bit dấu Sign = Số mũ E = Phần mũ exponent với số thừa K=127 biểu diễn: Exponent = E + 127 = + 127 = 12910 = 1000 00012 Phần định trị = 0101 0000 0000 0000 0000 000 (Thêm 19 số cho đủ 23 bit) Kết nhận được: 1000 0001 0101 0000 0000 0000 0000 000