Tải bản đầy đủ (.pdf) (33 trang)

tiểu luận biểu diễn số thực với dấu phẩy tự động

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (8.96 MB, 33 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>Nhóm 3</b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b><small>Trần Minh Q</small></b>

<b><small>Vũ Đình Tâm</small></b>

<b><small>Vương Tồn Hội</small></b>

<b><small>Hồng Văn Thiết</small></b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b><small> S1Ố THỰC</small></b>

<b>Nội dung</b>

<small>Floating-point arithmetic</small>

<b><small> BI2ỂU DIỄN SỐ THỰC TRONG MÁY TÍNH</small></b>

<b><small> BIỂU DIỄN SỐ THỰC VỚI DẤU PHẨY TĨNH2.1</small></b>

<b><small> BI2.2ỂU DIỄN SỐ THỰC VỚI DẤU PHẨY ĐỘNG</small></b>

<b><small> CÁC PHÉP TOÁN</small></b><small>2.3</small>

<b><small> SAI S</small></b><small>2.4</small> <b><small>Ố</small></b>

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>SỐ THỰC</b>

<b>+ Số thực là tập hợp bao gồm số dương (vd: 1,2,3), số 0, số âm (vd: -1,-2,-3), sốhữu tỉ (vd: 5/2, -23/45), số vô tỉ (vd: số pi, số √ 2).</b>

<b>+ Dùng để đo khoảng cách, đo các đại lượng như thời gian, khối lượng, năng</b>

lượng, vận tốc và nhiều đại lượng khác.

<b>+ Tập hợp tất cả các số thực là không thể đếm được</b>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b>SỐ THỰC</b>

<b>+ Máy tính khơng thể lưu trữ trực tiếp các số thực tùy ý có vơ số chữ số. Độ chínhxác có thể đạt được bị giới hạn bởi số lượng bit được phân bổ để lưu trữ một số,</b>

cho dù là số dấu phẩy động hay số có độ chính xác tùy ý.

<b>+ Hầu hết các máy tính không hoạt động trên số thực. Thay vào đó, chúng hoạt</b>

<i>động với các phép xấp xỉ chính xác hữu hạn được gọi là số dấu phẩy động. Trên</i>

thực tế, hầu hết các phép tính khoa học đều sử dụng số dấu phẩy động. Các số thực thỏa mãn các quy tắc thông thường của số học, nhưng số dấu phẩy động thì khơng.

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>2</b>

<b>BIỂU DIỄN SỐ THỰC</b>

Dấu phẩy được đặt tại một vị trí cố định để ngăn cách giữa phần nguyên với phần lẻ.

<b>Ví dụ: quy ước rằng chuỗi chữ số gồm 8 chữ số thập phân và dấu phẩy thập phân ln</b>

nằm ở ngay giữa chuỗi thì khi đọc giá trị "00012345" ta phải ngầm hiểu đây là số có giá

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b>2.1</b>

<b>BIỂU DIỄN SỐ THỰC VỚI DẤU PHẨY TĨNH</b>

Không quyết định được để bao nhiêu ngăn cho phần nguyên và phần lẻ là phù

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>BIỂU DIỄN SỐ THỰC</b>

<b>BIỂU DIỄN SỐ THỰC VỚI DẤU PHẨY ĐỘNG</b>

<b>+ Trong tin học, dấu phẩy động được dùng để chỉ một hệ thống biểu diễn số mà</b>

trong đó sử dụng một chuỗi chữ số (hay bit) để biểu diễn một số hữu tỉ.

<b>+ Trong ký hiệu khoa học, một con số thường được nhân với một lũy thừa của</b>

10 sao cho kết quả nằm trong khoảng 1 và 10, tức là kết quả sẽ được viết ra với dấu phẩy cơ số nằm trực tiếp sau chữ số đầu tiên. Để biết giá trị thực của con

<b>số, lũy thừa của 10 sẽ được viết riêng ra ở cuối kết quả. Lấy ví dụ, chu kỳ xoaymặt trăng Io của hành tinh Mộc Tinh là 152853.5047 giây. Khi đó, con số nàyđược biểu diễn dưới dạng ký hiệu khoa học chuẩn là 1.528535047×10^5 giây.</b>

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<b>BIỂU DIỄN SỐ THỰC VỚI DẤU PHẨY ĐỘNG</b>

<b>+ Cách biểu diễn số dấu phẩy động tương tự với cách dùng trong ký hiệu khoa</b>

Một chuỗi chữ số có dấu với chiều dài cho trước và có cơ số cho trước.

<b>Chuỗi này được gọi là phần định trị.</b>

Dấu phẩy cơ số được quy ước ngầm là luôn luôn nằm tại một vị trí cụ thể trong phần định trị - mà thường là ngay sau hoặc ngay trước chữ số có nghĩa lớn nhất (tức là chữ số đầu tiên tính từ bên trái qua).

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<b>BIỂU DIỄN SỐ THỰC VỚI DẤU PHẨY ĐỘNG</b>

<b>+ Một số mũ là số nguyên có dấu, nhằm mơ tả phần lấy tỉ lệ tức cho phép</b>

người đọc xác định được giá trị thực của số từ phần định trị.

<b>+ Ví dụ ở cơ số 10, số 152853.5047.</b>

Phần định trị là 1528535047 (với quy ước là vị trí của dấu phẩy cơ số nằm ngay sau chữ số có nghĩa lớn nhất, tức là chữ số 1). Khi đó, phần định trị được hiểu ngầm là 1.528535047.

Để người đọc có thể khơi phục lại giá trị ban đầu thì cần phải thêm số mũ là 5. Được 1.528535047 × 10^5.

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

<b>BIỂU DIỄN SỐ THỰC VỚI DẤU PHẨY ĐỘNG</b>

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

<b>BIỂU DIỄN SỐ THỰC VỚI DẤU PHẨY ĐỘNG</b>

<b>+ Các cách biểu diễn số thực với dấu phẩy động trong máy tính: </b>

<b>a) Độ chính xác đơn (single precision): một số thực dấu phẩy động đượcbiểu diễn ở dạng 32 bit.</b>

<b>b) Độ chính xác kép (Double precision): một số thực dấu phẩy động đượcbiểu diễn ở dạng 64 bit.</b>

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<b>Cơ số R = 2</b>

<b>S là bít dấu (số dương S = 0, số âm S = 1)</b>

<b>e là mã excess của phần mũ E (e = E+127 hay E = e-127, số 127 ở đây là độ</b>

lệch bias)

<b>m là phần lẻ của phần định trị M (M = 1,m)</b>

<b>+ Để biểu diễn số thực trong máy tính người ta đưa ra chuẩn IEEE 754. Hầu hết</b>

các máy tính ngày nay đều tuân theo chuẩn này.

<b>Với Độ chính xác đơn (single precision)</b>

Do vậy cơng thức xác định giá trị số thực như sau:

<b>BIỂU DIỄN SỐ THỰC VỚI DẤU PHẨY ĐỘNGVỚI ĐỘ CHÍNH XÁC ĐƠN</b>

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

<b>2.2a</b>

<b>BIỂU DIỄN SỐ THỰC VỚI DẤU PHẨY ĐỘNGVỚI ĐỘ CHÍNH XÁC ĐƠN</b>

<b>Hoặc:</b>

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<b>B2: Chuẩn hóa theo chuẩn IEEE 32 bit</b>

(lùi dấu phẩy lên trước, liền kề sau chữ số đầu tiên)

<b>2.2a</b>

<b>BIỂU DIỄN SỐ THỰC VỚI DẤU PHẨY ĐỘNGVỚI ĐỘ CHÍNH XÁC ĐƠN</b>

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<b>B3: Xác định các thông số biểu diễn S, e, m</b>

<b>Là số âm, suy ra S = 1</b>

<b>Ta có e = E + 127, suy ra e = 11 + 127 = 138₁₀ = 10001010₂</b>

<b>m = 001 0010 1001 0010 0000 0000</b>

Vậy số -2345,125 khi được biểu diễn với dấu phẩy động là :

<b>BIỂU DIỄN SỐ THỰC VỚI DẤU PHẨY ĐỘNGVỚI ĐỘ CHÍNH XÁC ĐƠN</b>

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

<b>Ví dụ 2: chuyển số từ hệ nhị phân với dấu phẩy động sang hệ thập phân.</b>

<b>BIỂU DIỄN SỐ THỰC VỚI DẤU PHẨY ĐỘNG</b>

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<b>2.2b</b>

<b>BIỂU DIỄN SỐ THỰC VỚI DẤU PHẨY ĐỘNGVỚI ĐỘ CHÍNH XÁC KÉP</b>

<b>Cơ số R = 2</b>

<b>S là bít dấu (số dương S = 0, số âm S = 1)</b>

e là mã excess của phần mũ E (e = E+1023 hay E = e-1023, số 1023 ở đây là độ lệch bias) m là phần lẻ của phần định trị M (M = 1,m)

<b>Với Độ chính xác kép (Double precision)</b>

Do vậy cơng thức xác định giá trị số thực như sau:

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

<b>2.2</b>

<b>BIỂU DIỄN SỐ THỰC VỚI DẤU PHẨY ĐỘNG</b>

Cấu trúc biểu diễn trong máy tính:

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

<b>2.3</b>

<b>CÁC PHÉP TỐN</b>

<b>a) Phép cộng:</b>

•B1: Chuẩn hóa 2 số về dạng chuẩn dấu phẩy động •B2: Biến đổi để số mũ của 2 toán hạng bằng nhau

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

<b>2.3</b>

<b>CÁC PHÉP TỐN</b>

<b>b) Phép trừ:</b>

•Phép trừ bằng phép cộng với số đối

•B1: Chuẩn hóa 2 số về dạng chuẩn dấu phẩy động •B2: Biến đổi để số mũ của 2 số bằng nhau

•B3: Trừ phần định trị của 2 số, giữ ngun phần mũ •B4: Chuẩn hóa kết quả

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

<b>2.3</b>

<b>CÁC PHÉP TOÁN</b>

<b>c) Phép nhân:</b>

•B1: chuẩn hóa 2 tốn hạng

•B2: ta nhân phần định trị với nhau •Tổng qt :

số X có dạng X=Mx*2^a số Y có dạng Y=My*2^b

suy ra X*Y = (Mx * My)*2^(a+b) •B3: Chuẩn hóa kết quả

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

<b>2.3</b>

<b>CÁC PHÉP TỐN</b>

<b>d) Phép chia:</b>

•B1: kiểm tra phép chia 0.

•B2: Chuẩn hóa 2 tốn hạng về dạng dấu phẩy động •B3: Chia phần định trị cho nhau, trừ số mũ X cho Y và xác định dấu của kết quả:

X = Mx * 2a, Y = My * 2b, X / Y = (Mx / My) x 2^(a-b) •B4: Chuẩn hóa kết quả nếu cần thiết

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

<b>2.4</b>

<b>SAI SỐ</b>

<b> Với số x được xấp xỉ bằng x’ thì |x-x’| gọi là sai số tuyệt đối. | (x - x’) / x| được gọi là sai số tương đối.</b>

<b>a) Sai số tuyệt đối và sai số tương đối</b>

Do số ngăn của một ô nhớ bị hạn chế nên biểu diễn sẽ mắc sai số làm trịn. Có hai loại sai số:

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

<b>2.4</b>

<b>SAI SỐ</b>

Đối với số thực Single Precision trong IEEE 754

<b>b) Machine Epsion</b>

Là giá trị lớn nhất mà khi cộng với 1 số thì giá trị của nó khơng thay đổi. => Cận trên của sai số tương đối

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">

<b>2.4</b>

<b>SAI SỐ</b>

<b>c) Tích lũy lỗi</b>

Sai số tích lũy nhiều lần qua các phép tốn

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

<b>Nhóm 3</b>

</div>

×