Bài giảng do GV. Phạm Tuấn Sơn biên soạn trình bày về các vấn đề với biểu diễn số nguyên, cách biểu diễn số chấm động, cách chuyển từ biểu diễn nhị phân sang thập phân, biểu diễn số chấm động 8bit,. Để biết rõ hơn về nội dung chi tiết, . | Bài 03: Số chấm động Phạm Tuấn Sơn ptson@ Vấn đề với biểu diễn số nguyên • Số nguyên N bit biểu diễn được 2N giá trị – Biểu diễn không dấu (Unsigned Integer) 0 à 2N – 1 (N=32, 2N–1 = 4,294,967,295) – Biểu diễn bù 2 -2(N-1) à 2(N-1) – 1 (N=32, 2(N-1) = 2,147,483,648) • Biểu diễn số rất lớn ? Số giây / 1 nghìn năm – 31,556,926,000 ( x 1010) • Biểu diển số rất nhỏ ? Số giây / 1 nano giây – ( x 10-9) • Biểu diễn số thập phân ? 2 Biểu diễn phần thập phân • Biểu diễn số thế nào ? Cần bao nhiêu bit ? • Giả sử dùng 8 bit để lưu trữ phần nguyên 5 = 4 + 1 = 00000101 • Tương tự có thể dùng 8 bit lưu trữ phần thập phân = + = 01100000 • Vậy có thể biểu diễn = • Tổng quát ta có: xn −1 K x1 x0 . x−1 x−2 K x− m = n ∑ i =− m xi 2i => Biểu diển số chấm tĩnh (fixed point) i 2-i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 1/2 1/4 1/8 1/16 1/32 . 3 Giới hạn biểu diễn số chấm tĩnh • Với 8 bit – Phần nguyên lớn nhất có thể biểu diễn là 28 - 1= 255 – Phần thập phân nhỏ nhất có thể biểu diễn là 2-8 = 1/256 = ~ 10-3 • Nếu muốn tính toán với số nhỏ hơn như hay ? à Tăng số bit Với 16 bit phần thập phân min = 1/65536 = ~ 10-5 • Có cách nào tốt hơn ? 4 Số chấm động – Ý tưởng • Hệ thập phân – 123000000000 ~ ×1011 và ~ ×10-11 • Tương tự với hệ nhị phân, ta có x = = 22 + 20 + 2-2 + 2-3 • Ta có thể viết lại x = × 22 • Thay vì dùng 16 bit để lưu trữ, chỉ cần dùng 7 bit (5 bit phần trị + 2 bit phần mũ) x = 10 • Như vậy, – Muốn tiết kiệm số bit lưu trữ, ta đã di chuyển vị trí của dấu chấm sang phải 14 vị trí – Cần lưu: phần trị, phần mũ và phần dấu => Đây là ý tưởng cơ bản của số chấm động (floating .