Bài giảng nhập môn tin học chương 2: biểu diễn dữ liệu

Máy tính là thiết bị ña phương tiện (multimedia device)  Máy tính lưu trữ, xử lý, hiển thị các dạng dữ liệu: • Giá trị số (numbers) • Văn bản (text) • Hình ảnh (images, graphics) • Âm thanh (audio) • Hình ảnh ñộng (video)

pdf108 trang | Chia sẻ: haohao89 | Lượt xem: 5379 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Bài giảng nhập môn tin học chương 2: biểu diễn dữ liệu, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
NHẬP MÔN TIN HỌC Chương 3 BIỂU DIỄN DỮ LIỆU 2Nội dung chương 3 I. Khái niệm về biểu diễn dữ liệu II. Biểu diễn số nguyên III.Biểu diễn số thực IV.Biểu diễn ký tự V. Dữ liệu âm thanh, hình ảnh 3I. Khái niệm về biểu diễn dữ liệu 1. Dữ liệu trên máy tính 2. Hệ ñếm theo vị trí 3. Các hệ ñếm thông dụng 4. Chuyển ñổi giữa các hệ ñếm 41. Dữ liệu trên máy tính Máy tính là thiết bị ña phương tiện (multimedia device) Máy tính lưu trữ, xử lý, hiển thị các dạng dữ liệu: • Giá trị số (numbers) • Văn bản (text) • Hình ảnh (images, graphics) • Âm thanh (audio) • Hình ảnh ñộng (video) 5Nén dữ liệu (Data Compression) Mục tiêu: giảm kích thước lưu trữ dữ liệu • Tỉ số nén (Compression ratio) Có hai kỹ thuật chính: • Nén không mất dữ liệu (lossless): dữ liệu có thể ñược phục hồi nguyên vẹn từ dữ liệu nén • Nén có mất dữ liệu (lossly): có một phần dữ liệu bị mất khi nén 6Dữ liệu dạng nhị phân Máy tính ñược thiết kế ñể sử dụng dữ liệu dạng nhị phân: • Giá thành thấp • ðộ tin cậy cao BIT (Binary digiT): chữ số nhị phân 72. Hệ ñếm theo vị trí Xét ví dụ 642 trong hệ ñếm theo vị trí cơ số 10: 6 x 102 = 6 x 100 = 600 + 4 x 101 = 4 x 10 = 40 + 2 x 10º = 2 x 1 = 2 = 64210 (642 trong hệ ñếm 10) Hệ ñếm cơ số 10 Số mũ thể hiện vị trí của chữ số 8Biểu thức tổng quát hệ ñếm theo vị trí dn-1 * R n-1 + dn-2 * R n-2 + ... + d1 * R 1 + d0 X = dn-1dn-2…d1d0 642 = 6 * 102 + 4 * 10 + 2 R là cơ số của hệ ñếm n là số chữ số trong giá trị X di là chữ số tại vị trí thứ i trong giá trị X 9Ví dụ: 642 trong hệ ñếm 12 (64212) 64212= 6*12 2 + 4*12 + 2 = 864 + 48 + 2 = 91410 10 3. Các hệ ñếm thông dụng Hệ thập phân (decimal) dùng 10 chữ số: • 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Hệ nhị phân (binary) dùng 2 chữ số: • 0, 1 Hệ bát phân (octal) dùng 8 chữ số: • 0, 1, 2, 3, 4, 5, 6, 7 Hệ thập lục phân (hexadecimal) dùng 16 chữ số: • 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F 11 Một số giá trị cần nhớ 771117 661106 551015 441004 33113 22102 1111 0000 HexOctBinDec F17111115 E16111014 D15110113 C14110012 B13101111 A12101010 91110019 81010008 HexOctBinDec 12 Một số giá trị cần nhớ (tt) 3225 1624 823 422 221 120 0.52-1 0.252-2 Dec 1048576220 4096212 2048211 1024210 51229 25628 12827 6426 Dec 13 4. Chuyển ñổi giữa các hệ ñếm Chuyển từ hệ 2, hệ 8, hệ 16 sang hệ 10 Chuyển ñổi giữa hệ 2 và hệ 8 Chuyển ñổi giữa hệ 2 và hệ 16 Chuyển từ hệ 10 sang hệ 2 Chuyển từ hệ 10 sang hệ ñếm cơ số K 14 Chuyển từ hệ 2, hệ 8, hệ 16 sang hệ 10 Dùng ñịnh nghĩa hệ ñếm theo vị trí Ví dụ • 101012 = 2 4 + 22 + 1 = 2110 • 3458 = 3*8 2 + 4*8 + 5 = 22910 • AB116 = 10*16 2 + 11*16 + 1 = 273710 15 Chuyển ñổi giữa hệ 2 và hệ 8 Ba bit (nhị phân) tương ñương 1 chữ số hệ 8 Ví dụ: • 101001110 = 101 001 110 = 5168 • 10101 = 10 101 = 258 • 1758 = 001 111 101 = 11111012 16 Chuyển ñổi giữa hệ 2 và hệ 16 Bốn bit (nhị phân) tương ñương 1 chữ số hệ 16 Ví dụ: • 10100111 = 1010 0111 = A716 • 110110 = 11 0110 = 3616 • 17516 = 0001 0111 0101 = 1011101012 17 Chuyển từ hệ 10 sang hệ 2 Hai phương pháp thông dụng:  Phân tích thành tổng các lũy thừa của 2  Thực hiện các phép chia cho 2 18 Phân tích thành tổng các lũy thừa của 2 Ví dụ: 4510 ?2  45 = 32 + 8 + 4 + 1 = 25 + 23 + 22 + 20 = 1011012 19 Thực hiện các phép chia cho 2 Ví dụ: 4510 ?2 45 22 1 11 0 5 1 2 1 1 0 0 1 1 0 1 1 0 1 20 Chuyển từ hệ 10 sang hệ ñếm cơ số K Giá trị thập phân X  Thực hiện các phép chia X và các thương số có ñược cho K, cho ñến khi thương số là 0 Kết quả là các dư số ñược lấy theo chiều ngược lại (từ ñáy lên ñỉnh.) 21 Ví dụ: 4510 ?3 45 15 0 5 0 1 2 0 1 1 2 0 0 3 22 Bài tập 1 ðổi các số thập phân sau ñây sang hệ 2, hệ 8, hệ 16: • 50, 129, 200, 257, 300 ðổi các số thập phân sau sang hệ 3, hệ 7: • 50, 150 23 II. Biểu diễn số nguyên 1. Các khái niệm 2. Số nguyên không dấu 3. Số nguyên có dấu 24 1. Các khái niệm Giá trị X ñược biểu diễn trên n bit • X: giá trị cần biểu diễn • n: kích thước biểu diễn • Với n bit chỉ biểu diễn ñược các giá trị X trong một khoảng biểu diễn  Số nguyên không dấu (unsigned integer)  Số nguyên có dấu (signed integer) 25 2. Số nguyên không dấu Dùng biểu diễn nhị phân của giá trị X Ví dụ: • X = 1010, n = 4  X = 10102 • X = 1010, n = 8  X = 000010102 • X = 10010, n = 8  X = 011001002 Khoảng biểu diễn: 0  2n-1 • n = 8 : 0  255 • n = 16 : 0  65535 26 Bài tập 2  Tìm biểu diễn nhị phân, bát phân, thập lục phân của các số thập phân không dấu sau ñây: • 81, 102, 250 với n = 8 • 1000, 2050 với n = 16 27 3. Số nguyên có dấu a. ðộ lớn có dấu (signed magnitude) b. Mã bù 1 (one’s complement) c. Mã bù 2 (two’s complement) d. Mã quá N (excess N, biased) 28 a. ðộ lớn có dấu Dùng 1 bit thể hiện dấu: • 0: số dương (+) • 1: số âm (-)  (n-1) bit còn lại là biểu diễn nhị phân của ñộ lớn X (trị tuyệt ñối của X) Ví dụ: • X = 5, n = 4  X = 0101 • X = -10, n = 8  X = 10001010 29 ðộ lớn có dấu (tt) Khoảng biểu diễn: - (2n-1 – 1)  +(2n-1 – 1) • n = 8: -12710 +12710 • n = 16: -3276710 +3276710 Nhận xét: với n = 8 • 00000000 = +0 • 10000000 = -0 ðược sử dụng trên các máy tính thế hệ ñầu, ví dụ IBM 7090 30 b. Mã bù 1  Dùng phép toán bitwise NOT (ñổi bit 1 thành bit 0, bit 0 thành bit 1) ñể tạo số âm.  Ví dụ: với n = 4 • 0101 = +5 • 1010 = -5  mã bù 1 của -5 là 1010  Nhận xét: có 1 bit dấu (0:dương, 1:âm)  Khoảng biểu diễn: - (2n-1 – 1)  +(2n-1 – 1) • n = 8: -12710 +12710 • n = 16: -3276710 +3276710 31 Mã bù 1 (tt) Nhận xét: với n = 8 • 00000000 = +0 • 11111111 = -0 ðược sử dụng trên các máy tính thế hệ ñầu, ví dụ PDP-1, UNIVAC 1100 32 c. Mã bù 2 Mã bù 2 của một số âm bằng mã bù 1 cộng thêm 1 Ví dụ: với n = 4 • 0101 = +5 • 1010 = -5 (mã bù 1 của -5 là 1010) 1011 (mã bù 2 của -5 là 1011) Nhận xét: có 1 bit dấu (0:dương, 1:âm) 33 Mã bù 2 (tt) Khoảng biểu diễn: - 2n-1  +(2n-1 – 1) • n = 8: -12810 +12710 • n = 16: -3276810 +3276710 ðược sử dụng trên các máy tính hiện ñại (trong CPU, ngôn ngữ lập trình) 34 Tìm mã bù 2 X: giá trị cần biểu diễn, n: số bit dùng biểu diễn X dương: mã bù 2 là biểu diễn nhị phân dùng n bit của X • X=5, n=8, mã bù 2 của 5 là 00000101 X âm: • Biểu diễn trị tuyệt ñối X dùng n bit • ðổi bit 1 thành bit 0 và bit 0 thành bit 1 • Cộng thêm 1 35 Tìm mã bù 2 (tt) Ví dụ: X = -10, n = 8 • 5 = 00001010 • ðổi 10, 01: 11110101 • Cộng thêm 1: mã bù 2 của -10 là 11110110 36 Tìm mã bù 2 (tt)  Phương pháp ñơn giản cho X âm • Biểu diễn trị tuyệt ñối của X dùng n bit • Tìm bit 1 ñầu tiên từ bên phải • ðổi 10, 01 tất cả các bit bên trái bit 1 ñã tìm Ví dụ: X = -10, n = 8 • 10 = 00001010 • Tìm bit 1 ñầu tiên từ bên phải 00001010 • Mã bù 2 của -10 là 11110110 37 Cộng số bù 2  Ví dụ 1: 1 1 1 1 1 1 1 carries 0 0 0 1 0 1 1 1 (23) + 1 1 1 1 0 1 1 1 +(-9) 0 0 0 0 1 1 1 0 14  Ví dụ 2: hiện tượng tràn (overflow) 0 1 1 1 1 carries 0 1 1 1 1 1 1 0 (126) + 0 0 0 0 1 0 0 0 +(8) 1 0 0 0 0 1 1 0 ??? (-122) 38 Xác ñịnh kết quả phép cộng số bù 2 Nếu số nhớ vào (carry in) bằng với số nhớ ra (carry out) trong phép cộng bit dấu thì không có hiện tượng tràn Nếu số nhớ vào (carry in) khác với số nhớ ra (carry out) trong phép cộng bit dấu thì có hiện tượng tràn • Overflow: kết quả phép toán vượt ra ngoài khoảng biểu diễn 39 d. Mã quá N  Còn gọi là phương pháp di chuyển (biased) Một giá trị nguyên có dấu X ñược biểu diễn thành một số nguyên không dấu có giá trị là X+N Ví dụ: N=7  mã quá 7, n=4 • Mã quá 7 của -5 là 0010 • Mã quá 7 của 5 là 1100 40 Mã quá N (tt) Khoảng biểu diễn - N  +(2n – 1 - N) • n = 8, N = 127: -12710 +12810 Mã quá N dùng trong biểu diễn số dấu chấm ñộng theo tiêu chuẩn IEEE 754 41 Các dạng mã hoá số nguyên với n = 4 42 Bài tập 3 Cho n = 8, tìm mã ñộ lớn có dấu, mã bù 1, mã bù 2, mã quá 127 của các số thập phân sau ñây: • 10, 61, 102 • -22, -55, -100 43 III. Biểu diễn số thực 1. Khái niệm về số thực 2. Số dấu chấm tĩnh 3. Số dấu chấm ñộng 4. Tiêu chuẩn số dấu chấm ñộng IEEE 754 44 1. Khái niệm về số thực  Trục số thực: chia làm 7 vùng  Trong khoảng biểu diễn có vô số số thực • Ví dụ: 20/3 = 6.666… • Có thể có sai số khi biểu diễn số thực Số âm quá lớn Số dương quá lớn Số âm quá nhỏ Số dương quá nhỏ KHOẢNG BIỂU DIỄN KHOẢNG BIỂU DIỄN SỐ 0 45 2. Số dấu chấm tĩnh Ví dụ: • +3.2510 , -11.012 Dùng n+m+1 bit ñể biểu diễn: • 1 bit dấu (0: dương, 1: âm) • n bit: phần nguyên • m bit: phần phân số ñúng Bit dấu Phần nguyên Phần phân số ñúng 1 bit n bit m bit 46 Số dấu chấm tĩnh (tt)  Sai số tuyệt ñối:  Số dương lớn nhất:  Số dương nhỏ nhất: 47 Ví dụ số dấu chấm tĩnh X = 3.37510, n = 7, m = 8 • 00000011.011000002 = 03.6016 X = -7.2510, n = 7, m = 8 • 10000111.010000002 = 87.4016 48 Ứng dụng số dấu chấm tĩnh Dùng trong các chương trình tính toán thương mại (các ứng dụng spreadsheet), và ñược hỗ trợ trên một số ngôn ngữ lập trình 49 Bài tập 4 Cho n=7, m=8, tìm biểu diễn số dấu chấm tĩnh của các số thập phân sau ñây: • 100.625, -70.3125, -120.4375 50 3. Số dấu chấm ñộng X là số bất kỳ, có thể phân tích dưới dạng: X = m*ae (1) trong ñó: a gọi là cơ số (radix) m gọi là phần ñịnh trị (mantissa) e gọi là phần bậc (exponent) 51 Số dấu chấm ñộng (tt)  Ví dụ: • a = 10, X = 3.14 X = 3.14 = 0.314*101 = 31.4*10-1 • a = 2, X = 11.101 X = (11.101)2 =(1.1101*101)2 =(0.11101*10 10) 2  Với cơ số a cho trước, có nhiều cách phân tích X theo dạng (1)  Vị trí ngăn cách giữa phần nguyên và phần phân số phụ thuộc phần bậc e không cố ñịnh như trong biểu diễn số dấu chấm tĩnh  biểu diễn số dấu chấm ñộng 52 Số dấu chấm ñộng (tt) Nếu ñặt thêm ñiều kiện a-1 ≤ | m | < 1 thì cách phân tích là duy nhất: dạng chuẩn Xét lại ví dụ trên: a = 10, X = 3.1410 = 0.314*10 1 a = 2, X = (11.101)2 = (0.11101*1010)2 53 Khái niệm FLOPS Dùng trong ñánh giá hiệu suất máy tính  FLoating-point Operations Per Second • Số tính toán số dấu chấm ñộng trong 1 giây Khái niệm tương tự MIPS • Million Instructions Per Second Số lệnh thực hiện trong một giây, trong ñó lệnh có thể là tính toán số nguyên, tính toán số dấu chấm ñộng, tính toán luận lý, … 54 4. Tiêu chuẩn số dấu chấm ñộng IEEE 754 Do tổ chức IEEE (Institude of Electrical and Electronic Engineers) • Mở rộng thành tiêu chuẩn IEEE 854 ðược sử dụng phổ biến trên các ñơn vị số dấu chấm ñộng (FPU, Floating-Point Unit) trong các bộ xử lý, và trên các ngôn ngữ lập trình 55 Tiêu chuẩn IEEE754 (tt)  Tiêu chuẩn IEEE 754 gồm các dạng số chấm ñộng tiêu chuẩn (normalized): • Số chính xác ñơn – Single-precision 32 bit (Số single) • Số chính xác kép – Double-precision 64 bit (Số double) • Số chính xác kép mở rộng – Double-Extended precision 80 bit (Số extended)  Số extended dùng ñể giảm các lỗi khi làm tròn số và chỉ dùng bên trong các FPU 56 Tiêu chuẩn IEEE754 (tt)  Các số dấu chấm ñộng IEEE 754 có dạng: X = S*2e trong ñó: S là phần ñịnh trị (significand) e là phần bậc (exponent) với 1.0 ≤ | S | < 2 S có thể viết thành S = 1.f trong ñó f là phần phân số (fraction) X = ± 1.f * 2e 57 Số chính xác ñơn (số single)  Số chính xác ñơn có 32 bit: • 1 bit dấu (0:dương, 1:âm) • 8 bit phần bậc dùng mã quá 127 • 23 bit phần phân số (thuộc phần ñịnh trị) Bit dấu Phần bậc Phần phân số 1 bit 8 bit 23 bit 58 Ví dụ số single  X = 0.510 • 0.5 = 1.0 * 2-1 • Bit dấu: 0 • Phần bậc: -1 mã quá 127 của -1 là -1+127 = 126 12610 = 011111102 • Phần ñịnh trị S = 1.0, phần phân số = 0  Biểu diễn dang số chính xác ñơn của 0.5: • 0 01111110 00..002 = 3F00000016 23 BIT 0 59 Ví dụ số single (tt)  X = -2010 • -20 = -1.25 * 24 • Bit dấu: 1 • Phần bậc: 4 mã quá 127 của 4 là 4+127 = 131 13110 = 100000112 • Phần ñịnh trị S = 1.25, phần phân số = 0.25 0.2510 = 0.012  Biểu diễn dang số chính xác ñơn của 0.5: • 1 10000011 010..002 = C1A0000016 21 BIT 0 60 Số chính xác kép (số double)  Số chính xác kép có 64 bit: • 1 bit dấu (0:dương, 1:âm) • 11 bit phần bậc dùng mã quá 1023 • 52 bit phần phân số (thuộc phần ñịnh trị) Bit dấu Phần bậc Phần phân số 1 bit 11 bit 52 bit 61 Các ñặc ñiểm chính của số single, số double -1022  1023-126  +127Khoảng phần bậc Mã quá 1023Mã quá 127Biểu diễn phần bậc 6432Tổng số bit 5223Số bit phần ñịnh trị 118Số bit phần bậc 11Số bit dấu Số doubleSố single 62 Các ñặc ñiểm chính của số single, số double (tt) ≈ 10-324≈ 10-45 Giá trị nhỏ nhất (dạng số ñặc biệt) ≈ 10-308 10+308≈ 10-38  10+38Khoảng biểu diễn (theo thập phân) ≈ 2+1024≈ 2+128Giá trị lớn nhất 2-10222-126Giá trị nhỏ nhất Số doubleSố single 63 Các dạng số ñặc biệt Tùy ý khác 0 11…11+/-NaN (Not a Number) 011…11+/-Vô cực / Vô cùng (Infinity) 00+/-Zero Tùy ý khác 0 0+/-Số không chuẩn (Denornalized) Tùy ý 0<exponent<max +/-Số tiêu chuẩn (Normalized) 64 Các dạng số ñặc biệt (tt)  Số dạng denormalized dùng ñể biểu diễn số rất nhỏ • Số nhỏ nhất là 2-23 * 2-127 = 2-150 Có thể biểu diễn 2 số 0 (+0, -0)  Số vô cực có thể dùng làm toán hạng tuân theo các quy tắc toán học cho số vô cực Khi kết quả phép toán không xác ñịnh, ví dụ ∞/∞ thì dùng dạng NaN (Not a Number) 65 Làm tròn số (rounding)  Tiêu chuẩn IEEE 754 có các dạng làm tròn số: • Unbiased: round to nearest Làm tròn về số gần nhất Nếu số cần làm tròn ở giữa 2 giá trị thì làm tròn về số có bit cuối bên phải là 0 • Toward zero: làm tròn về zero • Toward positive infinity: làm tròn về +∞ • Toward negative infinity: làm tròn về -∞ 66 Bài tập 5 ðổi các giá trị thập phân sau ñây sang dạng số single (IEEE 754), trình bày kết quả ở dạng hệ 16: • -15.5, 20.5, -34 ðổi các số dạng single sau ñây về dạng thập phân: • 42E48000H, 3F880000H 67 IV. Biểu diễn ký tự 1. Các khái niệm 2. ASCII 3. Unicode 4. Tiếng Việt trên máy tính 68 1. Các khái niệm Ký tự trên máy tính (computer character) là ñơn vị thông tin tương ứng với: • Một ký hiệu âm tiết (syllabary) trong dạng viết của ngôn ngữ tự nhiên • Ký tự ñiều khiển trong xử lý văn bản Mỗi ký tự ñược mã hoá bằng một chuỗi bit và ñược liệt kê trong bảng mã (character encoding scheme) hay bộ ký tự (character set) • Ví dụ: ASCII, Unicode 69 Lưu trữ, xử lý và hiển thị ký tự Mỗi ký tự ñược lưu trữ và xử lý theo vị trí ký tự trên bảng mã (mã ký tự) • Ví dụ: ‘A’ có giá trị 41H trong mã ASCII Các ký tự có biểu diễn ñồ họa (glyph) trên các thiết bị xuất (màn hình, máy in)  Font chữ (computer font) là file dữ liệu bao gồm tập hợp các biểu diễn ñồ họa của các ký tự, ký hiệu theo một dạng (typeface) 70 Các thông số chính của font chữ Dạng chữ (typeface) • Ví dụ: Time New Roman  Loại chữ (style) • Ví dụ: Normal, Bold, Italic, Bold Italic Kích thước (cỡ) chữ • Ví dụ: 12 points, 24 points với point là ñơn vị trong kỹ thuật in (1 point = 1/72 inch) 71 Ví dụ font chữ Time New Roman – Bold – 36 point Arial – Bold Italic – 36 point French Script – Bold – 48 point  Courier New – Normal – 32 point 72 Các ñịnh dạng chính của dữ liệu font chữ Bitmap font • Bao gồm một chuỗi các ñiểm ảnh (pixel) biểu diễn ảnh của ký tự theo một dạng chữ trên một cỡ chữ Outline font • Bao gồm các ñường cong dạng Bézier, các lệnh vẽ, các biểu thức toán, cho phép thể hiện một dạng chữ theo kích thước tùy ý (scalable) 73 True Type font  Là dạng Outline font ñược sử dụng phổ biến trên các hệ ñiều hành hiện ñại Ví dụ: Windows 2K/XP sử dụng True Type font dạng OpenType 74 2. ASCII American Standard Code for Information Interchange Do ANSI (American National Standards Institude) công bố năm 1967, cập nhật năm 1986 Bảng mã ASCII dùng biểu diễn ký tự trên máy tính và các thiết bị truyền thông 75 Mã ASCII (tt) Mã ASCII chuẩn dùng 7 bit, biểu diễn ñược 128 ký tự, bao gồm: • Các ký tự ñiều khiển (control characters) có giá trị (mã) từ 0 ñến 1Fh • Các ký tự in ñược (printable characters) có giá trị (mã) từ 20h ñến 7Fh Mã ASCII mở rộng dùng 8 bit, bao gồm: • Phần ASCII chuẩn • Các ký tự ñặc biệt có giá trị (mã) từ 80h ñến FFh 76 Mã ASCII chuẩn 77 Mã ASCII mở rộng 78 3. Unicode a. Giới thiệu Unicode b. Các ñặc ñiểm chính 79 a. Giới thiệu Unicode Unicode là tiêu chuẩn mã hóa ký tự của Hiệp hội Unicode (Unicode Consortium) bao gồm các nhà sản xuất IBM, Apple, HP, MicroSoft, Adobe, … Unicode là một hiện thực của chuẩn ISO 10646 UCS 2 (Universal Character Set) Unicode ñược hỗ trợ trên các hệ ñiều hành, trình duyệt web, các tiêu chuẩn phần mềm hiện ñại như XML, Java, LDAP, CORBA, … 80 Giới thiệu Unicode (tt) Mục tiêu của Unicode là cung cấp mã (code point) duy nhất cho ký tự, ký hiệu trên tất cả các ngôn ngữ, hệ thống chữ viết (writing systems) • Việc hiển thị ký tự (font) do chương trình ứng dụng (web, word processor, … ) thực hiện Unicode là mã 16 bit biểu diễn ñược 65536 ký tự, và có thể mở rộng ñến trên 1 triệu ký tự 81 b. Các ñặc ñiểm chính Có các phiên bản Unicode: 1.0, 1.1, 2.0, …, 5.0 Cách thể hiện mã ký tự theo Unicode: U+xxxx, với x là 1 chữ số hệ 16, ví dụ: • Latin -1 {U+0080..U+00FF} • Latin Extended A, B {U+0100..U+024F} • Combining Diacritical Marks {U+0300.. U+036F} • Latin Extended Additional {U+1E00..U+1EFF} • ðơn vị tiền tệ Việt Nam (ðồng): c U+20AB 82 Mã tổ hợp, mã dựng sẵn (dự tác) Ví dụ: chữ Ở, từ việt  Mã tổ hợp (combining) • Gồm chữ Ơ (U+01A0) và dấu hỏi (U+0309) • việt = v + i + e + ^ + . + t • việt = v + i + ê + . + t  Mã dựng sẵn (precomposed) • Mã U+1EDE • việt = v + i + ệ + t Có chuẩn ñể chuyển ñổi giữa hai dạng trên  NFC (Normalization Form C)  NFD (Normalization Form D) 83 Các sơ ñồ mã hóa chính UTF (Unicode Transformation Format)  UTF – 16: • Dạng mã hóa chuẩn, dùng 1 hay 2 số nguyên 16 bit • ðược dùng trong Windows API, .NET, Java  UTF – 8: • Gồm 1 ñến 4 byte • ðược thiết kế ñể tương thích với mã ASCII và các giao thức trên byte • Dùng trên Web Browsers, E-Mail 84 Ví dụ UTF-8 E1 BB A9U+1EE9ứ C6 B0U+01B0ư C6 A1U+01A1ơ E1 BB 9CU+1EDCỜ E1 BB 93U+1ED3ồ E1 BB 92U+1ED2Ồ Mã UTF-8Mã Unicode 16 bitChữ Việt 85 4. Tiếng Việt trên máy tính a. Bảng mã tiếng Việt b. Các font chữ Việt c. Chương trình bàn phím tiếng Việt 86 a. Bảng mã tiếng Việt Các nhóm bảng mã tiếng Việt: Dựa trên mã ASCII • Mã 1 byte • Mã 2 byte Mã Unicode 87 Mã tiếng Việt 1 byte Dùng phần mã ASCII mở rộng ñể biểu diễn các ký tự tiếng Việt • Không ñủ vì cần 134 mã (Ââ, ðñ, …) Giải quyết bằng việc dùng chung mã cho chữ thường và chữ hoa (cần 67 mã), phân biệt bằng font chữ hoa, chữ thường hoặc sử dụng 6 mã trong vùng ASCII chuẩn Ví dụ:TCVN-5712 (font ABC), BKHCM 1 byte, VPS, … 88 Mã tiếng Việt 2 byte Các nguyên âm có dấu ñược mã hóa bằng 2 byte Chữ Việt có dấu chữ hoa, chữ thường trong cùng 1 font Ví dụ: VNI, BKHCM 2 byte, 89 Tiếng Việt trên mã Unicode  Chính phủ Việt Nam qui ñịnh dùng tiêu chuẩn TCVN 6909:2001 dùng mã Unicode 16 bit (theo Unicode 3.1) làm chuẩn mã tiếng Việt trong trao ñổi thông tin ñiện tử  Unicode dạng dựng sẵn • Latin Extended Additional {U+1E00..U+1EFF}  Unicode dạng tổ hợp • Latin -1 {U+0080..U+00FF} • Latin Extended A, B {U+0100..U+024F} • Combining Diacritical Marks {U+0300.. U+036F} 90 b. Các font chữ Việt Các dạng mã 1 byte và 2 byte cần có các font chữ tương ứng. Ví dụ: • ABC, BKHCM 2 byte, VNI, … Mã Unicode dùng các font chữ do hệ ñiều hành và các phần mềm hỗ trợ 91 c. Chương trình bàn phím tiếng Việt Keyboard driver • Chương trình ñiều khiển bàn phím • Chương trình bàn phím • Bộ gõ Nhận chuỗi phím theo quy ñịnh cách nhập (input method) tiếng Việt, chuyển ñổi thành mã ký tự Việt theo bảng mã xác ñịnh 92 Chương trình bàn phím tiếng Việt (tt) Windows • Unikey, VietKey, WinVNkey, …  Linux • X- Unikey, xvnkb MAC OS • TCVN/VNI/Telex keyboard layouts 93 Các cách nhập tiếng V
Tài liệu liên quan