Post date: Jul 5, 2011 12:45:26 PM
Để biểu diễn 1 số thực trên máy tính, số thực thường được ước lượng dưới dạng:
M x AE
Ví dụ: 2.45 = 245 x 10-2 = 0.245 x 101
Có 2 phương pháp chính để biểu diễn số thực là Floating Point và Fixed Point. Sự khác biệt giữa floating và fixed là ở thành phần E. Với floating point, E là 1 đại lượng biến thiên, còn với fixed, E là 1 hằng cho trước.
Giá trị A thường là 2 (thường dùng cho fixed point) , 10 (thường dùng cho Floating Point), và 16 (ít dùng).
Được chuẩn hóa IEEE-754-1985 (phiên bản mới nhất IEEE-754-2008).
Floating point được biểu dưới dưới dạng nhị phân:
V = M x 2E
Single Precision (Kiểu float):
Các giá trị đặc biệt
Ví dụ: V = 10.245 = 1.0245 x101 = 1.2806250.23
Fraction calculation
Ta có,
Vậy, giá trị của V biểu diễn dưới dạng binary: 0 [10000010] [01000111110101110000101]
Double Precision
Nhận xét
Một cách biểu diễn số thực , nhưng sử dụng dạng thức số nguyên. Một số thực được biểu diễn:
V = M x 2-E
Với fixed point , ký tự Q thường dùng để định nghĩa thay cho E. Số fixed point Q16, tương đương với E = 16. Giá trị E là không đổi khi biểu diễn 1 số. Để chuyển đổi E, ta dùng công thức chuyển đổi hệ số. Ví dụ :
Biểu diễn dưới dạng nhị phân 1 số fixed Point – 32bits, Q16
Số Fixed Point có thể được biểu diễn bởi kiểu int 32 bits. Với việc sử dụng số nguyên, fixed point cho phép xử lý nhanh các phép toán trên trường số thực.
Một số phép toán thông dụng trên số Fixed Point
Các phép toán sau sử dụng Q16
Fixed_Num = int_num<<k_QFactor
Fixed_Num = ((int)((float_num)*(float)(1<<k_QFactor)))
Int_num = Fixed_Num>>k_QFactor
float_num = ((int)Fixed_Num>>k_QFactor) + (float)((int)Fixed_Num&k_QMask)/(1<<k_QFactor)
Với các phép toán khác, xem Computer Arithmetic Algorithms (2nd edition) – Israel Koren.