Giáo án 10
Chia sẻ bởi Hà Thị Thủy |
Ngày 10/05/2019 |
51
Chia sẻ tài liệu: giáo án 10 thuộc Tin học 11
Nội dung tài liệu:
CÁCH BIỂU DIỄN SỐ THỰC TRONG MÁY TÍNH ĐIỆN TỬ
1. Nguyên tắc chung
Floating Point Number biểu diễn cho số thực
Tổng quát : Một số thực X được biểu diễn theo kiểu số dấu phẩy động như sau :
X = M *
M là phần định trị (Mantissa),
R là cơ số (Radix),
E là phần mũ (Exponent).
2. Chuẩn IEEE754/85
Cơ số R = 2
Các dạng :
Dạng 32-bit
Dạng 44-bit
Dạng 64-bit
Dạng 80-bit
Các dạng biểu diễn chính
31 30 23 22 0
79 78 64 63 0
63 62 52 51 0
Dạng 32 bit
S là bit dấu :
S = 0 số dương
S = 1 số âm
e (8 bit) là mã excess-127 của phần mũ E :
e = E + 127 E = e – 127
giá trị 127 gọi là độ lệch (bias)
m (23 bit) là phần lẻ của phần định trị M :
M = 1.m
Công thức xác định giá trị của số thực :
X = *1.m*
Ví dụ 1
xác định giá trị của số thực được biểu diễn bằng 32-bit như sau:
1100 0001 0101 0110 0000 0000 0000 0000 0000
S = 1 số âm
E = 1000 0010 = 130 E = 130 – 127 = 3
Vậy :
X = - 1.10101100 * 2 = -1101.011 = -13.375
0011 1111 1000 0000 0000 0000 0000 0000 = ?
= +1.0
Ví dụ 2
Biểu diễn số thực X = 83.75 về dạng số dấu chấm động IEEE754 32-bit
Giải :
X = 83.75 = 1010011.11 = 1.01001111 x 2
Ta có :
S = 0 vì đây là số dương
E = e – 127 = 6
e = 127+6 = 133 = 1000 0101
Vậy
X = 0100 0010 1010 0111 1000 0000 0000 0000
Các quy ước đặc biệt
Các bit của e bằng 0, các bit của m bằng 0, thì X = 0
x000 0000 0000 0000 0000 0000 0000 0000 X = 0
Các bit của e bằng 1, các bit của m bằng 0, thì X =
x111 1111 1000 0000 0000 0000 0000 0000 X =
Các bit của e bằng 1, còn m có ít nhất một bit bằng 1, thì nó không biểu diễn cho số nào cả (NaN-not a number)
Dải giá trị biểu diễn
đến
đến
Dạng 64 bit
S là bit dấu
e (11 bit) : mã excess-1023 của phần mũ E E = e – 1023
m (52 bit) : phần lẻ của phần định trị M
Giá trị số thực :
X = *1.m*
Dải giá trị biểu diễn đến
Dạng 80 bit
S là bit dấu
e (15 bit) : mã excess-16383 của phần mũ
E E = e – 16383
m (64 bit) : phần lẻ của phần định trị M
Giá trị số thực :
X = *1.m*
Dải giá trị biểu diễn : đến
3. Thực hiện phép toán dấu phẩy động
X1 = M1*
X2 = M2*
Ta có
X1*X2 = (M1*M2)*
X1/X2 = (M1/M2)*
X1 X2 = (M1* M2)* , với E2 E1
Các khả năng tràn số
Tràn số trên mũ (Exponent Overflow) : mũ dương vượt ra khỏi giá trị cực đại của số mũ dương có thể ().
Tràn dưới số mũ (Exponent Underflow) : mũ âm vượt ra khỏi giá trị cực đại của số mũ âm có thể (0).
Tràn trên phần định trị (Mantissa Overflow) : cộng hai phần định trị có cùng dấu, kết quả bị nhớ ra ngoài bit cao nhất.
Tràn dưới phần định trị (Mantissa Underflow) : Khi hiệu chỉnh phần định trị, các số bị mất ở bên phải phần định trị
Phép cộng và phép trừ.
Kiểm tra các số hạng có bằng 0 hay không
Hiểu chỉnh phần định trị
Cộng hoặc trừ phần định trị
Chuẩn hoá kết quả
1. Nguyên tắc chung
Floating Point Number biểu diễn cho số thực
Tổng quát : Một số thực X được biểu diễn theo kiểu số dấu phẩy động như sau :
X = M *
M là phần định trị (Mantissa),
R là cơ số (Radix),
E là phần mũ (Exponent).
2. Chuẩn IEEE754/85
Cơ số R = 2
Các dạng :
Dạng 32-bit
Dạng 44-bit
Dạng 64-bit
Dạng 80-bit
Các dạng biểu diễn chính
31 30 23 22 0
79 78 64 63 0
63 62 52 51 0
Dạng 32 bit
S là bit dấu :
S = 0 số dương
S = 1 số âm
e (8 bit) là mã excess-127 của phần mũ E :
e = E + 127 E = e – 127
giá trị 127 gọi là độ lệch (bias)
m (23 bit) là phần lẻ của phần định trị M :
M = 1.m
Công thức xác định giá trị của số thực :
X = *1.m*
Ví dụ 1
xác định giá trị của số thực được biểu diễn bằng 32-bit như sau:
1100 0001 0101 0110 0000 0000 0000 0000 0000
S = 1 số âm
E = 1000 0010 = 130 E = 130 – 127 = 3
Vậy :
X = - 1.10101100 * 2 = -1101.011 = -13.375
0011 1111 1000 0000 0000 0000 0000 0000 = ?
= +1.0
Ví dụ 2
Biểu diễn số thực X = 83.75 về dạng số dấu chấm động IEEE754 32-bit
Giải :
X = 83.75 = 1010011.11 = 1.01001111 x 2
Ta có :
S = 0 vì đây là số dương
E = e – 127 = 6
e = 127+6 = 133 = 1000 0101
Vậy
X = 0100 0010 1010 0111 1000 0000 0000 0000
Các quy ước đặc biệt
Các bit của e bằng 0, các bit của m bằng 0, thì X = 0
x000 0000 0000 0000 0000 0000 0000 0000 X = 0
Các bit của e bằng 1, các bit của m bằng 0, thì X =
x111 1111 1000 0000 0000 0000 0000 0000 X =
Các bit của e bằng 1, còn m có ít nhất một bit bằng 1, thì nó không biểu diễn cho số nào cả (NaN-not a number)
Dải giá trị biểu diễn
đến
đến
Dạng 64 bit
S là bit dấu
e (11 bit) : mã excess-1023 của phần mũ E E = e – 1023
m (52 bit) : phần lẻ của phần định trị M
Giá trị số thực :
X = *1.m*
Dải giá trị biểu diễn đến
Dạng 80 bit
S là bit dấu
e (15 bit) : mã excess-16383 của phần mũ
E E = e – 16383
m (64 bit) : phần lẻ của phần định trị M
Giá trị số thực :
X = *1.m*
Dải giá trị biểu diễn : đến
3. Thực hiện phép toán dấu phẩy động
X1 = M1*
X2 = M2*
Ta có
X1*X2 = (M1*M2)*
X1/X2 = (M1/M2)*
X1 X2 = (M1* M2)* , với E2 E1
Các khả năng tràn số
Tràn số trên mũ (Exponent Overflow) : mũ dương vượt ra khỏi giá trị cực đại của số mũ dương có thể ().
Tràn dưới số mũ (Exponent Underflow) : mũ âm vượt ra khỏi giá trị cực đại của số mũ âm có thể (0).
Tràn trên phần định trị (Mantissa Overflow) : cộng hai phần định trị có cùng dấu, kết quả bị nhớ ra ngoài bit cao nhất.
Tràn dưới phần định trị (Mantissa Underflow) : Khi hiệu chỉnh phần định trị, các số bị mất ở bên phải phần định trị
Phép cộng và phép trừ.
Kiểm tra các số hạng có bằng 0 hay không
Hiểu chỉnh phần định trị
Cộng hoặc trừ phần định trị
Chuẩn hoá kết quả
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Hà Thị Thủy
Dung lượng: |
Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)