Số dấu phẩy động

Một phần của tài liệu Bài giảng: Cấu trúc máy tính và ghép nối pot (Trang 20 - 24)

CHƯƠNG 2: BIỂU DIỄN DỮ LIỆU

2.3. Số dấu phẩy động

2.3.1. Hn chế ca s du phy tĩnh

Số dấu phẩy tĩnh có số lượng chính xác các bit để biểu diễn số. Để biểu diễn số 1 tỉ, ta cần khoảng 40 bit ở phía bên trái của dãy số. Để biểu diễn độ chính xác 1 phần tỉ, ta cũng cần phải sử dụng khoảng 40 bit nữa ở phía bên phải “sau dấu chấm”. Như vậy, ta cần khoảng 80 bit để biểu diễn số trên.

Trong thực tế, rất nhiều trường hợp ta lại cần tính toán các con số lớn hơn 1 tỉ thậm chí lớn hơn khả năng tính toán của máy tính. Để tính toán con số càng lớn, phần cứng của máy tính đòi hỏi phải mạnh hơn để lưu trữ và tính toán. Trong lúc đó, độ chính xác cao của phép toán lại tỏ ra là không cần thiết đối với các phép tính số lớn. Ngược lại, đôi khi ta không cần biểu diễn số lớn nếu nó được tạo ra từ các số nhỏ.

2.3.2. Độ ln và độ chính xác ca s du phy động

Cách biểu diễn của số dấu phẩy động cho phép biểu diễn số có giá trị lớn bằng một dãy các bit có số lượng hữu hạn bằng cách chia một số lượng bit để biểu diễn độ chính xác và số lượng bit còn lại sẽ biểu diễn độ lớn của con số

Ví dụ

Trong ví dụ trên, độ lớn mà con số được biểu diễn lên tới khoảng 1023 còn độ chính xác của con số được biểu diễn bằng một số dấu phẩy tĩnh. Để biểu diễn giá trị này, số dấu phẩy động cần có 3 thành phần: phần dấu âm dương, số mũ cơ số 10 và phần giá trị

Để có thể biểu diễn số có giá trị lớn hơn nữa, ta phải hi sinh 1 bit trong phần khoảng giá trị tức là hi sinh độ chính xác của con số đang biểu diễn để tăng bit đó vào phần số mũ. Việc thay đổi các bit tại các trường này sẽ làm thay đổi độ lớn và độ chính xác của con số cần biểu diễn

2.3.3. Chun hóa và nhng bit đã được giu đi

Một vấn đề nổi cộm của số dấu phẩy động là một con số có thể được biểu diễn bằng các quy chuẩn khác nhau. Điều này gây khó khăn cho việc so sánh và thực hiện các phép toán. Ví dụ

Để tránh việc cùng một con số được biểu diễn bằng nhiều cách như ví dụ trên, các số dấu phẩy động cần được chuẩn hóa. Theo đó, dấu phẩy được đẩy sang trái hoặc sang phải và số mũ được điều chỉnh tương ứng cho đến khi số đầu tiên về phía bên phải sau dấu chấm không phải là một số 0. Với cách chuẩn hóa như vậy, số tận cùng bên phải ở ví dụ trên là số đã được chuẩn hóa.

Đối với trường hợp số cần biểu diễn là số nhị phân. Sau khi chuẩn hóa, số cần biểu diễn sẽ luôn bắt đầu bằng số 1, khi đó không nhất thiết cần phải biểu diễn số 1 đó. Thực tế, con số 1 đó sẽ không được lưu lại và luôn được bỏ đi. Kết quả là sẽ có thêm 1 bit để biểu diễn con số và điều này làm tăng độ chính xác của con số mà ta cần biểu diễn. Bit mà ta bỏ đi được gọi là những bit được dấu đi

2.3.4. Biu din s du phy động trong máy tính

Để biểu diễn số dấu phẩy động, chúng ta sử dụng cấu trúc sau - Bit dấu được đặt ở tận cùng phía bên trái

- Tiếp theo là 3 bit thể hiện số mũ cơ số 10. 3 bit này được biểu diễn bằng mã thừa 4 với cơ số 16

- Tiếp theo là dấu phẩy đã được chuẩn hóa và 3 số hecxa biểu diễn độ lớn của số

Bây giờ, ta sẽ thử chuyển đối số (358)10 sang số dấu phẩy động. Trước hết, ta chuyển con số ta cần biểu diễn sang số có cơ số 16.

Khi đó ta được (358)10 = (166)16. Bước tiếp theo là chuyển sang số dấu phẩy động

Chú ý rằng (160)10 = (100)16. Khi đó ta có

Số mũ ta được là 3, số này cần được chuyển sang số thừa 4. Tức là nó sẽ có giá trị trong cơ số 10 là 3 + 4 = 7 = (111)2. Cuối cùng ta được

Chúng ta cần lưu ý rằng dấu chấm ở trong chuỗi số trên chỉ là mang tính chất tượng trưng, nó không hề tồn tại trong máy tính.

Với 3 bit số mũ, ta sử dụng mã thừa 4 chứ không phải là mã bù hay mã có bít dấu là bởi vì khi sử dụng mã thừa 4, việc tính toán (cộng trừ) trở nên rất thuận tiện. Để thực hiện việc cộng hay trừ 2 số, số có số mũ nhỏ hơn sẽ được phi chuẩn hóa bằng cách tăng số mũ đến giá trị bằng với số mũ của số lớn hơn. Sau khi thay đổi, vì mã thừa không còn sự phân biệt của số có dấu và không dấu nên ta chỉ cần so sánh các bit từ cao đến thấp là ta có thể so sánh được số nào lớn hơn

Bàn luận thêm một chút về sự so sánh 2 số mã thừa 4. Trong mã thừa 4, số nhỏ nhất là -4 được biểu diễn bằng 3 ký tự 000, số lớn nhất là +3 được biểu diễn bởi 111. Các con số -3, -2, -1, 0, 1 và 2 lần lượt được biểu diễn là 001, 010, 011, 100, 101, và 110. Rừ ràng số lớn hơn trong dóy cú cỏc bớt từ lớn đến nhỏ là lớn hơn.

2.3.5. Biu din s du phy động theo chun IEEE 754

Trong ví dụ ở phần trên, số dấu phẩy động được biểu diễn bởi 12 bit, vậy máy tính sẽ sử dụng bao nhiêu bit để biểu diễn. Về mặt lý thuyết là không có một giá trị cố định. Do vậy, để tất cả các máy tính có thể hiểu được dữ liệu của nhau, và để tạo sự thống nhất cho các lập trình viên khi xử lý dữ liệu, việc hình thành nên một tiêu chuẩn thống nhất là một tất yếu. Đây là nguyên nhân của sự hình thành nên chuẩn IEEE 754

Các phương pháp biểu diễn

Một vài minh họa

Có 1 quy ước biểu diễn giá trị vô cùng là số mũ là 1111 1111 và khoảng giá trị là các con số 0, bit dấu có thể là 0 hoặc 1

Kết quả của phép toán 0/0 là một số bất định. Khi đó, kết quả được trả về là NaN (Not a Number). Chuỗi quy ước có số mũ là 1111 1111, bit dấu là 0 hoặc 1, còn giá trị là một số khác 0

Một phần của tài liệu Bài giảng: Cấu trúc máy tính và ghép nối pot (Trang 20 - 24)

Tải bản đầy đủ (PDF)

(178 trang)