Bài giảng Tin học đại cương: Phần I (Chương 2, Phần 3) - TS.Nguyễn Bá Ngọc

27 86 0
Bài giảng Tin học đại cương: Phần I (Chương 2, Phần 3) - TS.Nguyễn Bá Ngọc

Đ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

Cùng tìm hiểu biểu diễn ký tự; biểu diễn số thực; các dạng biểu diễn cơ bản; dạng chính xác đơn (Single precision 32 bit); giá trị của số thực độ chính xác đơn (32 bit);... được trình bày cụ thể trong Bài giảng Tin học đại cương: Phần I (Chương 2, Phần 3) do TS.Nguyễn Bá Ngọc biên soạn.

IT1110 Tin học đại cương Phần I: Tin học căn bản Chương 2: Biểu diễn dữ liệu trong máy tính Nguyễn Bá Ngọc Nội dung chương này        2.1. Các hệ đếm 2.2. Biểu diễn dữ liệu và đơn vị đo 2.3. Biểu diễn số ngun 2.4. Phép tốn số học với số ngun 2.5. Tính tốn logic với số nhị phân 2.6. Biểu diễn ký tự 2.7. Biểu diễn số thực 2.6. Biểu diễn ký tự  Nguyên tắc chung: Các  ký  tự  cũng  cần  được  biểu  diễn  bằng  chuỗi bit nhị phân gọi là mã ký tự  Số  bit  dùng  để  biểu  diễn  mỗi  ký  tự  phụ  thuộc vào bộ mã (ánh xạ 1­1 giữa ký tự và  mã ký tự) được sử dụng.     Vd : Bộ mã ASCII dùng 8 bit cho 1 ký tự        Bộ mã Unicode dùng 16 bit.   Bộ mã ASCII (American Standard Code for Information  Interchange)     Bộ mã đầu tiên được sử dụng trong máy tính Do  ANSI  (American  National  Standard  Institute)  thiết kế ASCII là bộ mã được dùng để trao đổi thông tin  chuẩn  của  Mỹ.  Lúc  đầu  chỉ  dùng  7  bit  (128  ký  tự)  sau  đó  mở  rộng  thành  8  bit  và  có  thể  biểu  diễn 256 ký tự khác nhau trong máy tính  Bộ mã ASCII mở rộng 8 bit bao gồm:  128 kí tự chuẩn có mã từ 0016   7F16  128 kí tự mở rộng có mã từ 8016   FF16 Ký tự điều khiển định dạng BS HT LF VT FF CR Backspace – Lùi lại một vị trí. Ký tự điều khiển con trỏ lùi  lại một vị trí Horizontal  Tab  –  Ký  tự  điều  khiển  con  trỏ  dịch  đi  một  khoảng định trước Line Feed – Ký tự điều khiển con trỏ xuống dòng Vertical  Tab  –  Ký  tự  điều  khiển  con  trỏ  dịch  đi  một  số  dòng Form Feed – Ký tự điều khiển con trỏ chuyển xuống đầu  trang tiếp theo Carriage  Return  –  Ký  tự  điều  khiển  con  trỏ  về  đầu  dòng  hiện hành Bộ mã ASCII (1)  95 kí tự hiển thị được:có mã từ 2016 ÷ 7E16  10 chữ số thập phân '0' ÷ '9' có mã từ 3016 ÷ 3916  26 chữ cái hoa Latin 'A' ÷ 'Z' có mã từ 4116 ÷ 5A16  26 chữ cái thường Latin 'a' ÷ 'z' có mã từ 6116 ÷  7A16 Bộ mã ASCII (2)  95 ký tự hiển thị được:      Các dấu câu: . , ? ! : ; v.v Các dấu phép tốn: + ­ * / v.v Một số kí tự thơng dụng: #, $, &, @, v.v Dấu cách (mã là 2016) 33 mã điều khiển: mã từ 0016 ÷ 1F16 và 7F16  dùng  để  mã  hóa  cho  các  chức  năng  điều  khiển Các ký tự mở rộng của bảng mã ASCII  Được định nghĩa bởi:    Nhà chế tạo máy tính Người phát triển phần mềm Ví dụ:    Bộ mã ký tự mở rộng của IBM: được dùng trên máy tính  IBM­PC Bộ  mã  ký  tự  mở  rộng  của  Apple:  được  dùng  trên  máy  tính Macintosh Các nhà phát triển phần mềm tiếng Việt cũng đã thay đổi  phần này để mã hố cho các ký tự riêng của chữ Việt, ví  dụ như bộ mã TCVN 5712, TCVN 3 (ABC), v. v 10 2.7. Biểu diễn số thực  2.7.1. Nguyên tắc chung   Để  biểu  diễn  số  thực,  trong  máy  tính  thường  dùng  ký  pháp dấu phẩy động (Floating Point Number).  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 * RE  M là phần định trị (Mantissa)  R là cơ số (Radix)  E là phần mũ (Exponent) 13 2.7.2. Chuẩn IEEE754­1985 14 Các dạng biểu diễn cơ bản 31 30 S 63 S  22 e m 62 52 51 e m 32 bit (dạng chính xác đơn – single precision)    23 kiểu float trong C exponent bias = 127 64 bit (dạng chính xác kép – double precision)   kiểu double trong C exponent bias = 1023 15 Dạng chính xác đơn (Single  precision 32 bit)  S là bit dấu   Phần mũ E:    S = 0: số dương; S = 1: số âm E = e – 127, trong đó e (excess) có độ dài 8 bit Giá trị 127 gọi là độ lệch (bias) Phần định trị M=1.m, trong đó m là phần lẻ của phần định trị  gồm 23 bit: 23 m b23 i i i  Cơng thức xác định giá trị của số thực: X = (­1)S * M * 2e­127 16 Giá trị của số thực độ chính xác đơn  (32 bit)   Nếu các bit của e = 0 và các bit của m = 0     Các bit của e = 1, các bit của m = 0     S = 0 → X = +0 S = 1 → X = –0 S = 0 → X = + S = 1 → X = – Các bit của e = 1, còn m có ít nhất 1 bit = 1 thì nó  khơng  biểu  diễn  cho  số  nào  cả  (NaN  –  Not  A  Number, lỗi khi chia cho 0) 17 Giá trị của số thực độ chính xác đơn  (32 bit)   Denormalized numbers  Tất cả các bit của e = 0 X = (­1)S x 0.m x 2­126 Normalized numbers    min(E) =  –126 với e = 1 max(E) = 127 với e = 254 (khi e = 255, X không phải là  số hữu hạn)  X = (­1)S x 1.m x 2e – 127  18 Dạng 32 – bit. Ví dụ:  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    S = 1   số âm e = 1000 00102 = 130   E = 130 – 127 = 3 Vậy, X= ­1.10101100*23 = ­1101.011 = ­13.375 19 Dạng 32 – bit. Ví dụ (tiếp):   0011 1111 1000 0000 0000 0000 0000 0000 Kết quả = +1.0 20 Dải biểu diễn giá trị   Độ chính xác đơn (32 bit)     Giá trị gần 0 nhất (biểu diễn bởi denomalized  numbers) là ± 2­149 ≈ ±1,4012985 x 10­45 Giá trị gần 0 nhất (biểu diễn bởi normalized  numbers) là ± 2­126 ≈ ±1,175494351 x 10­38 Giá trị hữu hạn xa 0 nhất (với e = 254 và các bit  trong m bằng 1) là  ± (1 – 2­24) x 2128 ≈ ±3.4028235 x 1038 Số chữ số có nghĩa ≈ 7 21 Dải biểu diễn giá trị   Độ chính xác kép (double precision 64 bit)    Giá trị gần 0 nhất (biểu diễn bởi denomalized  numbers) là ± 2­1074 ≈ ±5 x 10­324 Giá trị gần 0 nhất (biểu diễn bởi normalized  numbers) là  ± 2­1022 ≈ ±2,2250738585072020 x 10­308 Giá trị hữu hạn xa 0 nhất (với e = 2046 và các  bit trong m bằng 1) là  ± (1 – 2­53) x 21024 ≈ ±1.7976931348623157 x 1038  Số chữ số có nghĩa ≈ 15 22 Định dạng mở rộng    Chuẩn  IEEE754­1985  chỉ  xác  định  độ  chính  xác  và  lũy  thừa  tối  thiểu  cho  mỗi  định  dạng  mở rộng X87  80­bit  extended  format  là  chuẩn  được  biết đến nhiều nhất thỏa mãn yêu cầu này 23 Thực hiện phép toán số dấu phẩy  động    X1 = M1 * RE1 X2 = M2 * RE2 Ta có:    X1 * X2 = (M1 * M2) * RE1+ E2 X1 / X2 = (M1 / M2) * RE1 ­ E2  X1   X2 = (M1* RE1­E2   M2) * RE2, với E1    E2 24 Các khả năng tràn số     Tràn  trên  số  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 ngồ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ị 25 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 hóa kết quả 26 Hỏi ­ đáp 27 ... D i biểu diễn giá trị   Độ chính xác kép (double precision 64 bit)    Giá trị gần 0 nhất (biểu diễn b i denomalized  numbers) là ± 2­1074 ≈ ±5 x 10­324 Giá trị gần 0 nhất (biểu diễn b i normalized ... 2.2. Biểu diễn dữ liệu và đơn vị đo 2.3. Biểu diễn số ngun 2.4. Phép tốn số học v i số ngun 2.5. Tính tốn logic v i số nhị phân 2.6. Biểu diễn ký tự 2.7. Biểu diễn số thực 12 2.7. Biểu diễn số thực... 2.6. Biểu diễn ký tự 2.7. Biểu diễn số thực 2.6. Biểu diễn ký tự  Ngun tắc chung: Các  ký  tự  cũng  cần  được  biểu  diễn  bằng  chu i bit nhị phân g i là mã ký tự  Số  bit  dùng  để  biểu  diễn  m i ký  tự 

Ngày đăng: 30/01/2020, 13:58

Từ khóa liên quan

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

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

Tài liệu liên quan