03 bieu dien so thuc

23 2 0
03 bieu dien so thuc

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Quá trình phát triển và một số nét đặc trưng của các thế hệ máy tính ¨ Định luật Moore ¨ Một số thành phần cơ bản của máy tính cá nhân ngày nay ¨ Giải thích các khái niệm wafer, chip, chipset ¨ Mô hình abstraction layers

1 HỆ THỐNG MÁY TÍNH 03 – Biểu diễn số thc t ă Biu din s 123.37510 sang h nh phõn? ă í tng n gin: Biu din phn nguyờn v phn thp phõn riờng l Ô Với phần nguyên: Dùng bit ([010, 25510]) 12310 = 64 + 32 + 16 + + + = 0111 10112 Ô Vi phn thp phõn: Tng tự dùng bit 0.375 = 0.25 + 0.125 = 2-2 + 2-3 = 0110 00002 123.37510 = 0111 1011.0110 00002 ă Tng quỏt cụng thc khai trin ca số thập phân hệ nhị phân: xn -1 xn - x0 x-1 x- x- m = xn -1.2 n -1 + xn - 2 n - + x0 20 + x-1.2 -1 + x- 2 -2 + + x- m - m t ă Tuy nhiờnvi bit: Ô Phn nguyờn ln nht cú th biu din: 255 Ô Phn thp phõn nh nht cú th biu diễn: 2-8 ~ 10-3 = 0.001 Biểu diễn số nhỏ 0.0001 (10-4) hay 0.000001 (10-5)? Một giải phỏp: Tng s bit phn thp phõn Ô Vi 16 bit cho phần thập phân: = 2-16 ~ 10-5 Ô Cú v khụng hiu quCỏch tt hn ? Floating Point Number (Số thực dấu chấm động) Floating Point Number ? ă Gi s ta cú s ( dạng nhị phân) X = 0.00000000000000112 = (2-15 + 2-16)10 14 số X = 0.112 * (2-14)10 (= (2-1 + 2-2).2-14 = 2-15 + 2-16) Thay dùng 16 bit để lưu trữ phần thập phân, ta cần bit: X = 0.11 1110 Cách làm: Di chuyển vị trí dấu chấm sang phải 14 vị trí, dùng bit để lưu trữ số 14 Đây ý tưởng số thực dấu chấm động (floating point number) Chuẩn húa s thp phõn ă Trc cỏc s biểu diễn dạng số chấm động, chúng cần c chun húa v dng: 1.F * 2E ă Ô F: Phần thập phân không dấu (định trị - Significant) ¤ E: Phần số mũ (Exponent) Ví dụ: ¤ +0.0937510 = 0.000112 = +1.1 * 2-4 Ô -5.2510 = 101.012 = -1.0101 * 22 Biểu diễn số chấm động ¨ Có nhiều chuẩn chuẩn IEEE 754 dùng nhiều để lưu trữ số thập phân theo dấu chấm động máy tính, gồm dạng: (slide sau) Biu din s chm ng ă S chấm động xác đơn (32 bits): Sign Exponent (biased) bit ă Significand bits 23 bits S chm động xác kép (64 bits): Sign Exponent (biased) bit Significand 11 bits 52 bits ă Sign: Bit du (1: S õm, 0: S dng) ă Exponent: S m (Biu din di dng s quỏ K (Biased) vi ă ¤ 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 (phn l sau du chm) Vớ d ă Biểu diễn số thực sau theo dạng số chấm động chớnh xỏc n (32 bit): X = -5.25 ă Bc 1: Đổi X sang hệ nhị phân X = -5.2510 = -101.012 ă Bc 2: Chun húa theo dng 1.F * 2E X = -5.25 = -101.01 = -1.0101 * 22 ă Bc 3: Biu din Floating Point Ô S õm: bit du 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 Ô Phn đị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 Tho lun v exponent ă Vỡ phn số mũ exponent không giữ nguyên lại phải lưu trữ di dng s quỏ K (Dng biased)? ă Gi s số chấm động xác đơn (32 bits), ta dùng bits để lưu giá trị exponent (biểu diễn dạng số K), miền giá trị [0, 255] Với K = 127, số mũ gốc ban đầu có miền giá trị [-127, 128] Miền giá trị vô lý, không chọn số K = 128 để miền giá trị gốc [-128, 127] bình thường? Cõu hi - ỏp ỏn 10 ă S d Exponent lưu trữ dạng Biased ta muốn chuyển từ miền giá trị số có dấu sang số khơng dấu (vì biased, số k chọn để sau cộng số miền giá trị gốc, kết số dương) Dễ dàng so sánh, tính tốn Câu hỏi - Đáp án 11 ă S K c chn l 127 m khụng phải 128 bước trước biểu diễn thành số chấm động, cần phải chuẩn húa thnh dng 1.F * 2E ă Tc l chỳng ta luôn để dành bit (số 1) phía trước dấu chấm khơng đẩy sang trái hết Với bit, số mũ gốc ban đầu đạt mức nhỏ -128 mà -127 Do ta cần chọn K = 127 l c Vy thỡ 12 ă Khi mun biu diễn số ta khơng thể tìm bit trái có giá trị = để đẩy dấu chấm động, chuẩn hóa dạng ±1.F * 2E ? ă Vi s dng 0.F * 2-127 thỡ chun húa c na khụng? ă Vi K = 127, exponent lớn 255 Số mũ gốc ban đầu lớn 255 – 127 = +128 Vơ lý với bit có dấu ta biểu diễn số +128 ? Trả li 13 ă Vỡ ú l nhng s thc c biệt, ta biểu diễn dấu chấm động J S thc c bit 14 ă S (zero) Ô ă S khụng th chun húa (denormalized) Ô ă Exponent = 0, Significand != Số vô (infinity) Ô ă Exponent = 0, Significand = Exponent = 111…1 (toàn bit 1), Significand = Số báo lỗi (NaN Not a Number) Ô Exponent = 1111 (ton bit 1), Significand != Normalized number 15 ă ă ¨ Largest positive normalized number: +1.[23 số 1] * 2127 S Exp Significand (Fraction) - - 1111 1110 1111 1111 1111 1111 1111 111 Smallest positive normalized number: +1.[23 số 0] * 2-126 S Exp Significand (Fraction) - - 0000 0001 0000 0000 0000 0000 0000 000 Tương tự cho số negative (số âm) Denormalized number 16 ă Largest positive denormalized number: +0.[23 s 1] * 2-127 S Exp Significand (Fraction) -0 0000 0000 1111 1111 1111 1111 1111 111 Tuy nhiên IEEE 754 quy định +0.[23 số 1] * 2-126 muốn tiến gần với “Smallest positive normalized number = +1.[23 s 0] * 2-126 ă Smallest positive denormalized number: +1.[22 số 0]1 * 2-127 S Exp Significand (Fraction) -0 0000 0000 0000 0000 0000 0000 0000 001 Tuy nhiên IEEE 754 quy định +0.[22 s 0]1 * 2-126 ă Tng t cho s negative (số âm) Ví dụ: n = 4, m = 3, bias = 17 Phân bố số thực (32 bits) 18 Chuẩn IEEE 754 19 Bài tập 20 ă Biu din s thc sau theo dng s chấm động xác đơn (32 bit): X = +12.625 ¨ Bước 1: Đổi X sang hệ nhị phân X = -12.62510 = -1100.1012 ă Bc 2: Chun húa theo dạng ±1.F * 2E X = -12.62510 = -1100.1012 = -1.100101 * 23 ă Bc 3: Biu din Floating Point ¤ Số dương: 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 = 13010 = 1000 00102 ¤ Phần định trị = 1001 0100 0000 0000 0000 000 (Thêm 17 số cho đủ 23 bit) Kết nhận được: 1000 0010 1001 0100 0000 0000 0000 000

Ngày đăng: 10/04/2023, 17:24

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan