(BQ) Cùng tìm hiểu biểu diễn số trong các hệ đếm; biểu diễn dữ liệu trong máy tính, đơn vị thông tin; biểu diễn số nguyên; tính toán số học với số nguyên; tính toán logic với số nhị phân; biểu diễn ký tự;... được trình bày cụ thể trong Bài giảng Tin học đại cương Phần 1: Bài 2.
Chương 02: Biểu Diễn Dữ Liệu Trong Máy Tính Tin Học Đại Cương Phần I : Tin học 2.1 Biểu diễn số hệ đếm 2.2 Biểu diễn liệu máy tính, đơn vị thơng tin 2.3 Biểu diễn số ngun 2.4 Tính 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 Bài 02: Biểu Diễn Dữ Liệu Trong Máy Tính (lưu hành nội bộ)) Hệ đếm (tiếp) 2.1 Biểu diễn số hệ đếm Hệ đếm: đếm: Là tập hợp ký hiệu qui tắc, sử dụng tập ký hiệu để biểu diễn xác định giá trị số Mỗi hệ đếm có số ký tự/số (ký số) hữu hạn Tổng số ký số hệ đếm gọi số (base hay radix), ký hiệu b Ví dụ: Trong hệ đếm số 10, dùng 10 ký tự là: chữ số từ đến Về mặt tốn học, ta biểu diễn số theo hệ đếm số Khi nghiên cứu máy tính, ta quan tâm đến hệ đếm sau đây: Hệ thập phân (Decimal System) → người sử dụng Hệ đếm thập phân (Decimal system, b=10) Hệ đếm (tiếp) Hệ nhị phân (Binary System) → máy tính sử dụng Hệ đếm bát phân/hệ số (Octal System) →dùng để viết gọn số nhị phân Hệ mười sáu (Hexadecimal System) →dùng để viết gọn số nhị phân Hệ đếm thập phân hay hệ đếm số 10 bao gồm 10 ký số theo ký hiệu sau: 0, 1, 2, 3, 4, 5, 6, 7, 8, Dùng n chữ số thập phân biểu diễn 10n giá trị khác nhau: 00 000 = 99 999 = 10n-1 Hệ đếm thập phân (tiếp) Hệ đếm thập phân (tiếp) Giả sử số A biểu diễn dạng: Ví dụ: Số 5246 có giá trị tính sau: A = an an-1 … a1 a0 a-1 a-2 … a-m 5246 = x 103 + x 102 + x 101 + x 100 Giá trị A hiểu sau: Ví dụ: Số 254.68 có giá trị tính sau: A an 10n an110n 1 a1101 a0100 a1101 a m10 m 254.68 = x 102 + x 101 + x 100 + x 10-1 + x 10-2 n A i a 10 i i m Hệ đếm số b Hệ đếm số b (tiếp) Hệ đếm số b (với b ≥ 2,nguyên) mang tính chất sau : Có b ký tự để thể giá trị số Ký số nhỏ lớn b-1 Số N(b) hệ đếm số b) biểu diễn bởi: Trong biểu diễn trên, số N(b) có n+1 ký số biểu diễn cho phần nguyên m ký số lẻ biểu diễn cho phần lẻ, có giá trị là: N(b)=anan-1an-2…a1a0.a-1a-2…a-m 10 Hệ đếm nhị phân(tiếp) Hệ đếm nhị phân (Binary system, b=2) Dùng n bit biểu diễn 2n giá trị khác nhau: Sử dụng chữ số: 0,1 Chữ số nhị phân gọi bit (bi binary nary digit) digit) vd: bit 0, bit Bit đơn vị thông tin nhỏ 00 000 (2)= (trong hệ thập phân) 11 111 (2)= 2n - (trong hệ thập phân) VD: dùng bit biểu diễn số từ đến (trong hệ thập phân) 11 12 Hệ đếm nhị phân (tiếp) Hệ đếm nhị phân (tiếp) Giả sử có số A biểu diễn theo hệ nhị phân sau: A = an an-1 … a1 a0 a-1 a-2 … a-m Với chữ số nhị phân, giá trị A là: Ví dụ dụ:: Số nhị phân 1101001.1011 có giá trị trị:: 1101001.1011(2) = 26 + 25 + 23 + 20 + 2- + 2- + 2- = 64 + 32 + + + 0.5 + 0.125 + 0.0625 = 105.6875(10) Aan2n an12n1 a121 a020 a121 a222 am2m n A ai 2i im 13 14 Cộng trừ bit nhị phân Phép cộng: 1+0=0+1=1; 0+0=0; 1+1=10; Phép trừ: 1 +11 11 0 0-1=1; (vay 1) 1-1=0; 0-0=0; 15 16 Hệ đếm bát phân (Octal system, b=8) Sử dụng chữ số: 0,1,2,3,4,5,6,7 Dùng n chữ số biểu diễn 8n giá trị khác nhau: 1 0 1 - -01 00 000 = (trong hệ thập phân) 77 777 = 8n -1 (trong hệ thập phân) 17 Hệ đếm bát phân (tiếp) 18 Hệ đếm bát phân (tiếp) Giả sử có số A biểu diễn theo hệ nhị phân sau: A = an an-1 … a1 a0 a-1 a-2 … a-m Với chữ số hệ bát phân, giá trị A là: VD: 235 64 (8) có giá trị sau: 235 64 (8) = 2x82 + 3x81 + 5x80 + 6x8-1 + 4x8-2 = 157 8125(10) A an8n an18n1 a181 a080 a181 a282 am8m n A ai 8i im 19 20 Hệ đếm thập lục phân / hệ 16 Hệ đếm thập lục phân (tiếp) (Hexa decimal system, b=16) (Hexa Giả sử có số A biểu diễn theo hệ thập lục phân sau: Sử dụng 16 ký số: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F Các chữ in: A, B, C, D, E, F biểu diễn giá trị số tương ứng (trong hệ 10) 10, 11, 12, 13, 14, 15 A = an an-1 … a1 a0 a-1 a-2 … a-m Với chữ số hệ thập lục phân, giá trị A là: Aan16n an116n1 a1161a0160 a1161a2162 am16m n Aai16i im 21 22 Chuyển đổi số từ hệ thập phân sang hệ số b Hệ đếm thập lục phân (tiếp tiếp)) Ví dụ dụ:: 34F5C.12D(16) có giá trị sau sau:: Trường hợp tổng quát, số N hệ thập phân (N(10)) gồm phần nguyên phần thập phân Chuyển số từ hệ thập phân sang số hệ số b gồm bước: 34F5C.12D(16) = 3x164 + 4x163 + 15x162 + 5x161 + 12x160 + … = 216924(10) + 0735(10) 23 Đổi phần nguyên (của số đó) từ hệ thập phân sang hệ b Đổi phần thập phân (của số đó) từ hệ thập phân sang hệ số b 24 Chuyển đổi số từ hệ thập phân sang hệ số b (tiếp) Chuyển đổi từ hệ 1010-hệ b (tiếp) (Cứ làm bước thứ n, ta Tn =0 ) Bước n: Nếu Tn -1 khác 0, lấy Tn -1 chia cho b, ta thương số Tn =0, số dư dn Kết ta số N(b) số tạo số dư (được viết theo thứ tự ngược lại) bước Đổi phần nguyên sang hệ số b: Bước 1:Lấy 1:Lấy phần nguyên N(10) chia cho b, ta thương T1 số dư d1 Bước 2: Nếu T1 khác 0, Lấy T1 chia tiếp cho b, ta thương số T2 , số dư d2 N(10) = dndn-1…d1 (b) 25 Chuyển đổi số từ hệ thập phân sang hệ số b (tiếp) 26 Chuyển đổi số từ hệ thập phân sang hệ số b (tiếp) Đổi phần thập phân từ hệ thập phân sang hệ số b: Ví dụ: Cách chuyển phần nguyên số 12.6875(10) sang số hệ nhị phân: Bước1: Lấy phần lẻ N(10 Bước1 10)) nhân với b, ta số có dạng x1.y1 (x phần nguyên, y phần thập phân) Bước 2: Nếu y1 khác 0, tiếp tục lấy 0.y1 nhân với b, ta số có dạng x2.y2 Dùng phép chia cho liên tiếp, ta có loạt số dư sau 27 28 Chuyển đổi số từ hệ thập phân sang hệ số b Chuyển đổi hệ 1010-hệ b(tiếp) Ví dụ: Cách chuyển phần thập phân số 12.6875(10) sang hệ nhị phân: làm yn=0) Bước n: Nếu yn-1 khác 0, nhân 0.yn1 với b, ta xn.0 …(cứ Kết ta số sau chuyển đổi là: 0,x1x2…xn 29 30 Một số ví dụ Chuyển đổi số từ hệ thập phân sang hệ số b Nhị phân Hexa:11 1011 1110 0110(2) = 3BE6(16) Hexa Nhị phân:3E8 phân: 3E8(16) = 11 1110 1000(2) Hexa Thập phân: 3A8C ? 12.6875(10) = 1100.1011 (2) 3A8C (16) = x 163 + 10 x 162 + x 161 +12 x 16 = 12288 + 2560 + 128 + 12 = 14988(10) E38 (16) = ? 31 32 Tính nhẩm chuyển đổi hệ số 10 sang số Một số ví dụ (tiếp) Thập phân Hexa: 14988 ? Tách số nguyên cần chuyển đổi thành tổng lũy thừa Vd: 67=64+2+1=26 + 21 +20 = 1000011 (2) 14988 : 16 = 936 dư 12 tức C 936 : 16 = 58 dư 58 : 16 = dư 10 tức A : 16 = dư Như vậy, ta có: 14988(10) = 3A8C(16) VD1: chuyển sang hệ nhị phân: a) 124.75 b) 65.125 33 Chương 02: Biểu diễn liệu máy tính 34 2.2.1 Mã hóa liệu cho máy tính 2.1 Biểu diễn số hệ đếm 2.2 Biểu diễn liệu máy tính, đơn vị thơng tin 2.3 Biểu diễn số ngun 2.4 Tính 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 Mọi liệu đưa vào máy tính phải mã hóa thành số nhị phân Các loại liệu liệu:: Dữ liệu nhân tạo tạo:: Do người quy ước Dữ liệu tự nhiên nhiên:: Tồn khách quan với người người Phổ biến tín hiệu vật lý âm thanh, hình ảnh,… ảnh, … 35 36 Nguyên tắc mã hóa liệu Mã hóa liệu nhân tạo tạo:: Dữ liệu số số:: Mã hóa theo chuẩn quy ước Dữ liệu ký tự tự:: Mã hóa theo mã ký tự Mã hóa liệu tự nhiên nhiên:: Các liệu cần phải số hóa trước đưa vào máy tính Sơ đồ mã hóa tái tạo tín hiệu vật lý 37 38 Dữ liệu 2.2.2 Dữ liệu máy tính Dữ liệu số ngun ngun:: Có loại liệu máy tính tính:: Dữ liệu Dữ liệu có cấu trúc Số nguyên không dấu dấu:: Biểu diễn theo mã nhị phân thơng thường thường Số ngun có dấu dấu:: Biểu diễn dạng mã bù hai hai Dữ liệu số thực thực:: Được biểu diễn số dấu chấm động động 39 40 10 Dữ liệu (tiếp) Dữ liệu có cấu trúc Là tập hợp loại liệu cấu thành theo cách đó Ví dụ dụ:: kiểu liệu mảng, xâu ký tự, tập hợp, ghi, ghi,… … Trong phần nghiên cứu liệu bản, liệu có cấu trúc nghiên cứu cụ thể phần học ngôn ngữ lập trình trình Dữ liệu ký tự tự:: Được biểu diễn mã ký tự dựa mã ký tự tự * Độ dài từ liệu liệu:: Là số bit sử dụng để mã hóa loại liệu tương ứng Trong thực tế, độ dài từ liệu thường bội số 41 42 Chương 02: Biểu diễn liệu máy tính 2.2.3 Đơn vị đo thơng tin 2.1 Biểu diễn số hệ đếm 2.2 Biểu diễn liệu máy tính, đơn vị thơng tin 2.3 Biểu diễn số ngun 2.4 Tính 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 43 44 11 Biểu diễn số nguyên Số nguyên không dấu Dạng tổng quát: giả sử dùng n bit để biểu diễn cho số nguyên không dấu A: an-1an-2 a3a2a1a0 Giá trị A tính sau: Dùng chuỗi bit để biểu diễn Đối với số nguyên có dấu, người ta sử dụng bit đầu tiên(Most significant bit) để biểu diễn dấu ‘-‘ bit gọi bit dấu A a n n a n 2 n a a n 1 A a i 2i i0 Dải biểu diễn A: từ đến 2n-1 45 46 Các ví dụ (tiếp) Các ví dụ Ví dụ Cho số nguyên không dấu X, Y biểu diễn bit sau: X = 0010 1011 Y = 1001 0110 Giải: X = 0010 1011 = 25 + 23 + 21 + 20 = 32 + + + = 43 Y = 1001 0110 = 27 + 24 + 22 + 21 = 128 + 16 + + = 150 Ví dụ Biểu diễn số nguyên không dấu sau bit: A = 45 B = 156 Giải: A = 45 = 32 + + + = 25 + 23 + 22 + 20 A = 0010 1101 B = 156 = 128 + 16 + + = 27 + 24 + 23 + 22 B = 1001 1100 47 48 12 Trường hợp cụ thể: với n = bit Trường hợp cụ thể: với n = bit Dải biểu diễn [0, 255] 0000 0000 = 0000 0001 0000 0010 0000 0011 1111 1111 = = = Trục số học máy tính: Chú ý: phép tính vượt dải biểu diễn Dùng bit để biểu diễn số nguyên không dấu Tính kết phép tính sau: 123 + 64 =? 123=64+32+16+8+2+1 -> 01111011 64= 01000000 = 255 49 50 Biểu diễn số nguyên có dấu Dạng tổng quát số nguyên có dấu A: Min = 10000…000 Max = 01111…111 an-1an-2 a2a1a0 Giá trị A xác định sau: n A a n 1 n 1 ai2 i i Dải biểu diễn: [[-2n-1, 2n-1-1] 51 52 13 Biểu diễn số nguyên có dấu (tiếp) Biểu diễn số nguyên có dấu (tiếp) Dùng n bit biểu diễn số nguyên có dấu A: an-1an-2 a2a1a0 Với số dương: Với số âm: Bit an-1 = Các bit lại biểu diễn độ lớn số dương n2 Dạng tổng quát số dương: 0an-2 a2a1a0 n2 Giá trị số dương: A A n 1 2i i0 2i i Bit an-1 = Dạng tổng quát số âm: 1an-2 a2a1a0 Giá trị số âm: Dải biểu diễn số âm: [[-2n-1, -1] Dải biểu diễn số dương: [0, 2n-1-1] 53 54 Biểu diễn số nguyên có dấu (tiếp) Biểu diễn số ngun có dấu (tiếp) Ví dụ: Xác định giá trị số nguyên có dấu bit sau đây: A = 0101 0110 B = 1101 0010 Giải: A = 26 + 24 + 22 + 21 = 64 + 16 + + = +86 B = -27 + 26 + 24 + 21 = -128 + 64 + 16 + = -46 Chuyển số nguyên (dương/âm hệ 10) dạng biểu diễn máy tính ? 55 56 14 Biểu diễn số nguyên có dấu (tiếp) Biểu diễn số nguyên có dấu (tiếp) Số bù số bù hai (hệ nhị phân): Dùng n bit để biểu diễn số nguyên có dấu –A = Biểu diễn số bù A (sử (sử dụng n bit) Ví dụ dụ:: Biểu diễn số nguyên có dấu sau bit: A = -70 Biểu diễn 70 = 0100 0110 Bù 1: 1011 1001 + Bù 2: 1011 1010 Vậy:: A= 1011 1010 VD -60 -> 11000100 Vậy Giả sử có số ngun (khơng dấu) nhị phân A biểu diễn n bit Khi ta có: Số bù A = (2n - 1) - A Số bù hai A = 2n - A NX: Số bù hai = Số bù + Ví dụ: Xét n = bit, A = 0110 Số bù A = (24 - 1) - 0110 = 1001 Số bù hai A = 24 - 0110 = 1010 57 58 Tính tốn số học với số nguyên Cộng/ trừ số nguyên không dấu (tiếp) Cộng/ trừ số nguyên không dấu: Dùng bit để biểu diễn số nguyên không dấu Trường hợp không xảy tràn số (carry(carry-out): Tiến hành cộng bít từ phải qua trái Khi cộng hai số nguyên không dấu n bits ta thu số nguyên không dấu n bits Nếu tổng hai số lớn 2n-1 tràn số kết sai X = 1001 0110 = 150 Y = 0001 0011 = 19 S = 1010 1001 = 169 Cout = Trường hợp có xảy tràn số (carry(carry-out): 59 X = 1100 0101 = 197 Y = 0100 0110 = 70 S = 0000 1011 267 Cout = carry carry out (KQ sai = 23 + 21 + 20 = 11) 60 15 Cộng/trừ số nguyên có dấu Cộng/trừ số nguyên có dấu (tiếp) Cộng cặp bit từ phải qua trái, bỏ qua bit nhớ (nếu có) Để trừ hai số nguyên có dấu X Y (X – Y) , cần lấy bù hai Y tức – Y, sau cộng X với –Y theo nguyên tắc Cộng hai số khác dấu: kết Cộng hai số dấu: Nếu tổng nhận dấu với số hạng kết Nếu tổng nhận khác dấu với số hạng xảy tượng tràn số học (Overflow) kết nhận sai Tràn số học xảy tổng thực hai số nằm dải biểu diễn số nguyên có dấu n bit: [-2n-1, 2n-1-1] 61 Cộng/trừ số nguyên có dấu (tiếp) 62 Cộng/trừ số ngun có dấu (tiếp) Vd: khơng tràn số Có xảy tràn số: 63 64 16 Nhân/chia số nguyên không dấu Nhân/chia số nguyên không dấu (tiếp) Các bước thực trọng hệ 10 Vd: Phép nhân 1011 VD: Phép chia (11 số 10) x 1101 1011 0000 1011 1011 -10001111 (13 số 10) (143 số 10) 65 Các phép toán logic với số nhị phân AND OR XOR 0 0 0 1 1 0 1 1 1 66 Các phép toán logic với số nhị phân (tiếp) NOT 67 1 68 17 Các phép toán logic với số nhị phân Các phép toán logic với số nhị phân (tiếp) (tiếp) VD: A = 1010 1010 B = 0000 111 Thực phép toán logic với số nhị phân: AND OR XOR 1010 1010 Kết số nhị phân thực phép toán logic với cặp bit số nhị phân Các phép tốn tác động lên cặp bit mà không ảnh hưởng đến bit khác NOT 01010101 0000 1111 11110000 00001010 10101111 10100101 Nhận xét: +Phép AND dùng để xoá số bit giữ nguyên số bit lại +Phép OR dùng để thiết lập số bit giữ nguyên số bit khác 69 70 Biểu diễn ký tự Bộ mã ASCII Do ANSI (American National Standard Institute) thiết kế ASCII mã dùng để trao đổi thông tin chuẩn Mỹ Mỹ Lúc đầu dùng bit (128 ký tự) sau mở rộng cho bit biểu diễn 256 ký tự khác máy tính Bộ mã bit mã hóa cho 28 = 256 kí tự, có mã từ 0016 FF16, bao gồm: Nguyên tắc chung: Các ký tự cần chuyển đổi thành chuỗi bit nhị phân gọi mã ký tự tự Số bit dùng cho ký tự theo mã khác khác Vd : Bộ mã ASCII dùng bit cho ký tự Bộ mã Unicode dùng 16 bit 71 128 kí tự chuẩn có mã từ 0016 7F16 128 kí tự mở rộng có mã từ 8016 FF16 72 18 Bộ mã ASCII (tiếp) 95 kí tự hiển thị được:có mã từ 2016 ÷ 7E16 26 chữ hoa Latin 'A' ÷ 'Z' có mã từ 4116 ÷ 5A16 26 chữ thường Latin 'a' ÷ 'z' có mã từ 6116 ÷ 7A16 10 chữ số thập phân '0' ÷ '9' có mã từ 3016 ÷ 3916 73 Bộ mã ASCII (tiếp) Bộ mã ASCII (tiếp) 95 ký tự hiển thị được: 74 33 mã điều khiển: mã từ 0016 ÷ 1F16 7F16 dùng để mã hóa cho chức điều khiển Các dấu câu: , ? ! : ; … Các dấu phép toán: + - * / … Một số kí tự thơng dụng: #, $, &, @, Dấu cách (mã 2016) 75 76 19 Điều khiển định dạng Điều khiển truyền số liệu BS Backspace - Lùi lại vị trí: Ký tự điều khiển trỏ lùi lại vị trí HT Horizontal Tab - Tab ngang: Ký tự điều khiển trỏ dịch tiếp khoảng định trước LF Line Feed - Xuống dòng: Ký tự điều khiển trỏ chuyển xuống dòng VT Vertical Tab - Tab đứng: Ký tự điều khiển trỏ chuyển qua số dòng định trước FF Form Feed - Đẩy sang đầu trang: Ký tự điều khiển trỏ di chuyển xuống đầu trang CR Carriage Return - Về đầu dòng: Ký tự điều khiển trỏ di chuyển đầu dòng hành SOH Start of Heading - Bắt đầu tiêu đề: Ký tự đánh dấu bắt đầu phần thông tin tiêu đề STX Start of Text - Bắt đầu văn bản: Ký tự đánh dấu bắt đầu khối liệu văn để kết thúc phần thông tin tiêu đề ETX End of Text - Kết thúc văn bản: Ký tự đánh dấu kết thúc khối liệu văn bắt đầu STX EOT End of Transmission - Kết thúc truyền: Chỉ cho bên thu biết kết thúc truyền ENQ Enquiry - Hỏi: Tín hiệu yêu cầu đáp ứng từ máy xa ACK Acknowledge - Báo nhận: Ký tự phát từ phía thu báo cho phía phát biết liệu nhận thành công NAK Negative Aknowledge - Báo phủ nhận: Ký tự phát từ phía thu báo cho phía phát biết việc nhận liệu không thành công SYN Synchronous / Idle - Đồng hóa: Được sử dụng hệ thống truyền đồng để đồng hoá trình truyền liệu ETB End of Transmission Block - Kết thúc khối truyền: Chỉ kết thúc khối liệu truyền 77 78 Điều khiển phân cách thông tin FS File Separator - Ký hiệu phân cách tập tin: Đánh dấu ranh giới tập tin GS Group Separator - Ký hiệu phân cách nhóm: Đánh dấu ranh giới nhóm tin (tập hợp ghi) RS US Các kí tự điều khiển khác NUL Null - Ký tự rỗng: Được sử dụng để điền khoảng trống khơng có liệu BEL Bell - Chng: Được sử dụng phát tiếng bíp cần gọi ý người SO Shift Out - Dịch ra: Chỉ mã nằm tập ký tự chuẩn gặp ký tự SI SI Shift In - Dịch vào: Chỉ mã nằm tập ký tự chuẩn DLE DC1 ÷ DC4 Record Separator - Ký hiệu phân cách ghi: Đánh dấu ranh giới ghi Unit Separator - Ký hiệu phân cách đơn vị: Đánh dấu ranh giới phần ghi 79 Data Link Escape - Thoát liên kết liệu: Ký tự thay đổi ý nghĩa nhiều ký tự liên tiếp sau Device Control - Điều khiển thiết bị : Các ký tự dùng để điều khiển thiết bị phụ trợ CAN Cancel - Hủy bỏ: Chỉ số ký tự nằm trước cần phải bỏ qua EM End of Medium - Kết thúc phương tiện: Chỉ ký tự trước ký tự cuối có tác dụng với phương tiện vật lý SUB Substitute - Thay thế: Được thay cho ký tự xác định bị lỗi ESC Escape - Thoát: Ký tự dùng để cung cấp mã mở rộng cách kết hợp với ký tự sau DEL Delete - Xóa: Dùng để xóa ký tự khơng mong muốn 80 20 Các kí tự mở rộng bảng Ascii Các ký tự mở rộng bảng Ascii Được định nghĩa bởi: Ví dụ: Nhà chế tạo máy tính Người phát triển phần mềm Bộ mã ký tự mở rộng IBM: dùng máy tính IBMIBM-PC Bộ mã ký tự mở rộng Apple: dùng máy tính Macintosh Các nhà phát triển phần mềm tiếng Việt thay đổi phần để mã hoá cho ký tự riêng chữ Việt, ví dụ mã TCVN 5712 81 82 Biểu diễn số thực Bộ mã Unicode Do hãng máy tính hàng đầu thiết kế Là mã 16 16 bit, Vậy số ký tự biểu diễn (mã hố) 216 Được thiết kế kế cho đa ngơn ngữ, có tiếng Việt Nguyên tắc chung chung:: 83 Để biểu diễn số thực thực,, máy tính người ta thường dùng ký pháp dấu phảy động (Floating Point Number) 84 21 Biểu diễn số thực (tiếp) Biểu diễn số thực (tiếp) Một số thực X biểu diễn theo kiểu số dấu chấm động sau: X = M * RE Trong đó: Ví dụ: với số R = 10, giả sử số thực N1 N2 lưu trữ theo phần định trị số mũ sau: M phần định trị (Mantissa) R số (Radix) thường hoạc 10 E phần mũ (Exponent) Với R cố định để lưu trữ X ta cần lưu trữ M E (dưới dạng số nguyên) M1 = -15 E1 = +12 M2 = +314 E2 = -9 Có nghĩa N1 = M1 x 10 E1 = -15x10E1 = -15 000 000 000 000 N2 = M2 x 10 E2 = 314 x 1010-9 0.000 000 314 = 85 86 Biểu diễn số thực (tiếp) Biểu diễn số thực (tiếp) Khi thực phép toán với số dấu chấm động tiến hành sở giá trị phần định trị phần mũ Giả sử có số dấu phẩy động sau sau:: N1 = M1 x RE1 N2 = M2 x RE2 Khi đó,, việc thực phép toán số học tiến hành hành:: E1 E2 ± M2) x RE2 , N1 ± N2 = (M1 x R E1 giả thiết E1 ≥ E2 N1 x N2 = (M1x M2) x R E1+E2 E1 E2 N1 /N2 = (M1 / M2) / R E1 87 88 22 Chuẩn IEEE 754/85 (tiếp) Chuẩn IEEE 754/85 Khn dạng mã hóa: Là chuẩn mã hóa số dấu chấm động Cơ số R = Có dạng bản: Dạng có độ xác đơn, 3232-bit Dạng có độ xác kép, 6464-bit Dạng có độ xác kép mở rộng, 8080bit 89 Chuẩn IEEE 754/85 (tiếp) Chuẩn IEEE 754/85 (tiếp) S bit dấu, S=0 số dương, S=1 số âm e mã lệch (excess) phần mũ E, tức là: E = e–b Trong b độ lệch (bias): 90 m bit phần lẻ phần định trị M, phần định trị ngầm định sau: M = 1.m Công thức xác định giá trị số thực tương ứng là: X = ((-1)S x 1.m x 2e-b Dạng 3232-bit : b = 127, hay E = e - 127 Dạng 6464-bit : b = 1023, hay E = e - 1023 Dạng 8080-bit : b = 16383, hay E = e - 16383 S 91 e m 92 23 Ví dụ số dấu chấm động Ví dụ số dấu chấm động (tiếp) Ví dụ 1: 1: Có số thực X có dạng biểu diễn nhị phân theo chuẩn IEEE 754 dạng 32 bit sau: 1100 0001 0101 0101 0110 0000 0000 0000 0000 Xác định giá trị thập phân số thực Giải: Ví dụ 2: 2: Xác định giá trị thập phân số thực X có dạng biểu diễn theo chuẩn IEEE 754 dạng 32 bit sau: 0011 1111 1000 0000 0000 0000 0000 0000 Giải:: Giải S = X số âm e = 1000 0010 = 130 m = 10101100 00 130 127 Vậy X = ((-1)1 x 1.10101100 00 1.10101100 00 x 2130 = -1.101011 x = -1101.011 = -13.375 93 94 Ví dụ số dấu chấm động (tiếp) Các quy ước đặc biệt Ví dụ 3: 3: Biểu diễn số thực X = 9.6875 dạng số dấu chấm động theo chuẩn IEEE 754 dạng 32 bit Giải:: Giải X = 9.6875(10) = 1001.1011(2) = 1.0011011 x 23 Ta có: Nếu tất bit e 0, bit m 0, X = Nếu tất bit e 1, bit m 0, X = Nếu tất bit e 1, m có bit 1, X số (not a number - NaN) S = số dương E = e – 127 nên e = 127 + = 130(10) = 1000 0010(2) m = 001101100 00 (23 bit) Vậy: X = 0100 0001 0001 1011 0000 0000 0000 0000 95 96 24 Trục số biểu diễn Thực phép toán X1 = M1 * RE1 X2 = M2 * RE2 Ta có Dạng 32 bit: a = 2-127 ≈ 10-38 b = 2+127 ≈ 10+38 Dạng 64 bit: a = 2-1023 ≈ 10-308 b = 2+1023 ≈ 10+308 Dạng 80 bit: a = 2-16383 ≈ 10-4932 b = 2+16383 ≈ 10+4932 97 E1 E2 M2) * RE2 , với X1 X2 = (M1 * RE1 E2 E1 X1 * X2 = (M1 * M2) * RE1+E2 E1 E2 X1 / X2 = (M1 / M2) * RE1 98 Hết chương 99 25 ... bit: a = 2- 127 ≈ 1 0-3 8 b = 2+ 127 ≈ 10+38 Dạng 64 bit: a = 2- 1 023 ≈ 1 0-3 08 b = 2+ 1 023 ≈ 10+308 Dạng 80 bit: a = 2- 16383 ≈ 1 0-4 9 32 b = 2+ 16383 ≈ 10+49 32 97 E1 E2 M2) * RE2 , với X1 X2 = (M1... an-1 … a1 a0 a-1 a -2 … a-m Với chữ số nhị phân, giá trị A là: Ví dụ dụ:: Số nhị phân 1101001.1011 có giá trị trị:: 1101001.1011 (2) = 26 + 25 + 23 + 20 + 2- + 2- + 2- = 64 + 32 + + + 0.5 + 0. 125 ... 25 + 23 + 21 + 20 = 32 + + + = 43 Y = 1001 0110 = 27 + 24 + 22 + 21 = 128 + 16 + + = 150 Ví dụ Biểu diễn số nguyên không dấu sau bit: A = 45 B = 156 Giải: A = 45 = 32 + + + = 25 + 23 + 22 + 20