Mã hóa dữ liệu cho máy tínhMọi dữ liệu khi đưa vào máy tính đều phải được mã hóa thành số nhị phân Các loại dữ liệu: Dữ liệu nhân tạo: Do con người quy ước Dữ liệu tự nhiên: Tồn tại
Trang 1INFORMATION TECHNOLOGY
Trang 2Chương 02: Biểu diễn dữ liệu trong máy tính
2.1 Biểu diễn dữ liệu trong máy tính,
đơn vị thông tin
2.2 Biểu diễn số trong các hệ đếm
2.3 Biểu diễn số nguyên
2.4 Tính toán số học với số nguyên
2.5 Tính toá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
Trang 3 Nguyễn Thị Thu Trang, SE-FIT-HUT
Chương 02: Biểu diễn dữ liệu trong máy tính
2.1 Biểu diễn dữ liệu trong máy tính,
đơn vị thông tin
2.2 Biểu diễn số trong các hệ đếm
2.3 Biểu diễn số nguyên
2.4 Tính toán số học với số nguyên
2.5 Tính toá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
Trang 42.1.1 Mã hóa dữ liệu cho máy tính
Mọi dữ liệu khi đưa vào máy tính đều phải được mã hóa thành số nhị phân
Các loại dữ liệu:
Dữ liệu nhân tạo: Do con người quy ước
Dữ liệu tự nhiên:
Tồn tại khách quan với con người.
Phổ biến là các tín hiệu vật lý như âm thanh, hình ảnh,…
Trang 5 Nguyễn Thị Thu Trang, SE-FIT-HUT
Nguyên tắc mã hóa dữ liệu
Mã hóa dữ liệu nhân tạo:
Dữ liệu số: Mã hóa theo các chuẩn quy ước
Dữ liệu ký tự: Mã hóa theo bộ mã ký tự
Mã hóa dữ liệu tự nhiên:
Các dữ liệu cần phải số hóa trước khi đưa vào máy tính
Theo sơ đồ mã hóa và tái tạo tín hiệu vật lý
Trang 6Sơ đồ mã hóa và tái tạo tín hiệu vật lý
Trang 7 Nguyễn Thị Thu Trang, SE-FIT-HUT
2.1.2 Dữ liệu trong máy tính
Có 2 loại dữ liệu trong máy tính:
Dữ liệu cơ bản
Dữ liệu có cấu trúc
Trang 8a Dữ liệu cơ bản
Dữ liệu số nguyên:
Số nguyên không dấu: Biểu diễn theo mã nhị phân thông thường.
Số nguyên có dấu: Biểu diễn dưới dạng mã bù hai.
Dữ liệu số thực: Được biểu diễn bằng số dấu chấm động
Dữ liệu ký tự: Được biểu diễn bằng mã ký tự dựa trên các bộ mã ký tự
Trang 9 Nguyễn Thị Thu Trang, SE-FIT-HUT
b Dữ liệu có cấu trúc
Là tập hợp các loại dữ liệu cơ bản được cấu thành theo một cách nào đó
Ví dụ: kiểu dữ liệu mảng, xâu ký tự, tập hợp, bản ghi,…
Trang 102.1.3 Đơn vị đo thông tin
Bit (BInary digiT): Là đơn vị thông tin nhỏ nhất, nhận 1 trong 2 giá trị nhị phân là 0
hoặc 1
Byte: Chuỗi 8 bit
Kilobyte (KB), 1KB = 210 Byte = 1024 Byte
Megabyte (MB), 1MB = 210 KB = 220 Byte
= 1,048,576 ByteGigabyte (GB), 1GB = 210 MB = 230 Byte
Terabyte (TB), 1TB = 210 GB = 240 Byte
Petabyte (PB), 1PB = 210 TB = 250 Byte
Exabyte (EB), 1EB = 210 PB = 260 Byte
Trang 11 Nguyễn Thị Thu Trang, SE-FIT-HUT
Chương 02: Biểu diễn dữ liệu trong máy tính
2.1 Biểu diễn dữ liệu trong máy tính,
đơn vị thông tin
2.2 Hệ đếm
2.3 Biểu diễn số nguyên
2.4 Tính toán số học với số nguyên
2.5 Tính toá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
Trang 12Tổng số ký số của mỗi hệ đếm được gọi là cơ số
(base hay radix), ký hiệu là b (b ≥ 2)
Ví dụ: Trong hệ đếm cơ số 10, dùng 10 ký tự là:
các chữ số từ 0 đến 9.
Về mặt toán học, ta có thể biểu diễn 1 số theo hệ
đếm cơ số bất kì.
Trang 13 Nguyễn Thị Thu Trang, SE-FIT-HUT
2.2 Hệ đếm (tiếp)
Khi nghiên cứu về máy tính, ta quan tâm đến các hệ đếm sau đây:
Hệ thập phân (Decimal System)
Hệ mười sáu (Hexadecimal System)
→ Dùng để viết gọn cho số nhị phân (thường
dùng hơn hệ bát phân)
Trang 182.2.3 Hệ đếm nhị phân (Binary system, b=2)
Sử dụng 2 ký số: 0, 1
Chữ số nhị phân gọi là BIT (BInary digiT)
Ví dụ: Bit 0, bit 1
Bit là đơn vị thông tin nhỏ nhất
Dùng n bit có thể biểu diễn được 2n giá trị khác nhau:
Trang 19 Nguyễn Thị Thu Trang, SE-FIT-HUT
2.2.3 Hệ đếm nhị phân (tiếp)
Giả sử có số A được biểu diễn theo hệ nhị phân như sau:
A: an an-1 … a1 a0 a-1 a-2 … a-m
Với ai là các chữ số nhị phân, khi đó giá trị của A là:
Trang 222.2.4 Hệ đếm bát phân (tiếp)
Giả sử có số A được biểu diễn theo hệ nhị phân như sau:
A: an an-1 … a1 a0 a-1 a-2 … a-m
Với ai là các chữ số trong hệ bát phân, khi đó giá trị của A là:
Trang 25 Nguyễn Thị Thu Trang, SE-FIT-HUT
2.2.5 Hệ đếm thập lục phân (tiếp)
Giả sử có số A được biểu diễn theo hệ nhị phân như sau:
A = an an-1 … a1 a0 a a-1 a-2 … a-m
Với ai là các chữ số trong hệ thập lục phân, khi đó giá trị của A là:
Trang 27 Nguyễn Thị Thu Trang, SE-FIT-HUT
2.2.6 Chuyển đổi một số từ hệ thập
phân sang hệ cơ số b
Trường hợp tổng quát, một số N trong hệ thập phân (N(10)) gồm phần nguyên và
phần thập phân
Chuyển 1 số từ hệ thập phân sang 1 số ở hệ cơ số b bất kỳ gồm 2 bước:
Đổ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ệ cơ số b
Trang 282.2.6 Chuyển đổi một số từ hệ thập
phân sang hệ cơ số b (tiếp)
Đổi phần nguyên sang hệ cơ số b:
được thương là T1 số dư d1.
được thương số là T2 , số dư là d2
hoặc thu được số đạt được sai số mong muốn)
thương số là Tn =0, số dư là dn
Kết quả ta được số N(b) là số tạo bởi các số dư (được
viết theo thứ tự ngược lại) trong các bước trên
N (b) = d n d n-1 …d 1
Trang 29 Nguyễn Thị Thu Trang, SE-FIT-HUT
2.2.6 Chuyển đổi một số từ hệ thập
phân sang hệ cơ số b (tiếp)
Ví dụ: Cách chuyển phần nguyên của số 12.6875(10)
sang số trong hệ nhị phân:
Dùng phép chia cho 2 liên tiếp, ta có một loạt các
số dư như sau
Trang 302.2.6 Chuyển đổi một số từ hệ thập
phân sang hệ cơ số b (tiếp)
Đổi phần thập phân từ hệ thập phân sang hệ cơ số b:
Bước 1: Lấy phần thập phân của N(10) nhân với b, ta được một số có dạng x1.y1 (x là phần nguyên, y là 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 được một số có dạng x2.y2
đạt được sai số mong muốn)
Bước n: Nếu yn-1 khác 0, nhân 0.yn-1 với b, ta được
xn.0
Trang 31 Nguyễn Thị Thu Trang, SE-FIT-HUT
2.2.6 Chuyển đổi một số từ hệ thập
phân sang hệ cơ số b (tiếp)
Ví dụ: Cách chuyển phần thập phân của số 12.6875(10) sang hệ nhị phân:
Trang 322.2.6 Chuyển đổi một số từ hệ thập
phân sang hệ cơ số b (tiếp)
12.6875(10) = 1100.1011 (2)
69.25(10) = ?(2)
Trang 33 Nhanh hơn.
Ví dụ: 69.25 (10) = 64 + 4 + 1+ ¼
= 2 6 + 2 2 + 2 0 + 2 -2
= 1 000 1 0 1 0 1
Trang 36Chương 02: Biểu diễn dữ liệu trong máy tính
2.1 Biểu diễn dữ liệu trong máy tính,
đơn vị thông tin
2.2 Biểu diễn số trong các hệ đếm
2.3 Biểu diễn số nguyên
2.4 Tính toán số học với số nguyên
2.5 Tính toá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
Trang 37 Nguyễn Thị Thu Trang, SE-FIT-HUT
2.3.1 Số nguyên không dấu
Dạng tổng quát: Giả sử dùng n bit để biểu diễn cho một số nguyên không dấu A:
an-1an-2 a3a2a1a0Giá trị của A được tính như sau:
Dải biểu diễn của A: từ 0 đến 2n-1
Trang 38Số nguyên không dấu - Ví dụ
Ví dụ 1 Biểu diễn các số nguyên không dấu sau đây bằng 8 bit:
A = 45 B = 156Giải:
A = 45(10) = 32 + 8 + 4 + 1 = 25 + 23 + 2 + 22 + 20
→ A = 0010 1101(2)
B = 156(10) = 128+16+8+4 = 27 + 24 + 23 + 22
→ B = 1001 1100(2)
Trang 39 Nguyễn Thị Thu Trang, SE-FIT-HUT
Số nguyên không dấu – Ví dụ (tiếp)
Ví dụ 2 Cho các số nguyên không dấu X, Y được biểu diễn bằng 8 bit như sau:
X = 0010 1011
Y = 1001 0110Giải:
X = 0010 1011(2) = 25 + 23 + 21 + 20
= 32 + 8 + 2 + 1 = 43(10)
Y = 1001 0110(2) = 27 + 2 + 24 + 22 + 21
= 128 + 16 + 4 + 2 = 150(10)
Trang 40Trường hợp cụ thể: với n = 8 bit
Dải biểu diễn là [0, 255]
Trang 41 Nguyễn Thị Thu Trang, SE-FIT-HUT
Trường hợp cụ thể: với n = 8 bit
Chú ý: Các phép tính vượt quá dải biểu diễn.
Dùng 8 bit để biểu diễn số nguyên không dấu Tính kết quả của
phép tính sau: 123 + 164 =?
Trang 422.3.2 Số nguyên có dấu
Sử dụng bit đầu tiên để biểu diễn dấu ‘-‘ và bit này gọi là bit dấu
Sử dụng số bù hai để biểu diễn
Trang 45 Nguyễn Thị Thu Trang, SE-FIT-HUT
Biểu diễn số nguyên có dấu (tiếp)
Số bù một và số bù hai (hệ nhị phân):
Giả sử có 1 số nguyên nhị phân được
biểu diễn bởi n bit Ta có:
NX: Số bù hai = Số bù một + 1
Trang 47 Nguyễn Thị Thu Trang, SE-FIT-HUT
Biểu diễn số nguyên có dấu (tiếp)
Biểu diễn số nguyên có dấu bằng số bù hai
Dùng n bit để biểu diễn số nguyên có dấu A
Biểu diễn số bù 2 của A (sử dụng n bit)
Ví dụ: Biểu diễn số nguyên có dấu sau đây bằng 8 bit: A = - 70(10)
Trang 482.3.2 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ố không âm:
Bit an-1 = 0
Các bit còn lại biểu diễn độ lớn của số không âm đó
Dạng tổng quát của số không âm: 0 an-2 a2a1a0
Trang 49 Nguyễn Thị Thu Trang, SE-FIT-HUT
2.3.2 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ố âm:
Bit an-1 = 1
Dạng tổng quát của số âm: 1 an-2 a2a1a0
Trang 502.3.2 Số nguyên có dấu
Dạng tổng quát của số nguyên có dấu A:
an-1an-2 a2a1a0
Giá trị của A được xác định như sau:
Dải biểu diễn: [-2n-1, 2n-1-1]
Trang 51 Nguyễn Thị Thu Trang, SE-FIT-HUT
2.3.2 Số nguyên có dấu (tiếp)
Ví dụ: Xác định giá trị của các số nguyên có dấu 8 bit sau đây:
Ví dụ: Xác định giá trị của các số nguyên có dấu 8 bit sau đây:
Trang 52Trường hợp cụ thể: với n = 8 bit
Dải biểu diễn là [-128, 127]
Trang 53 Nguyễn Thị Thu Trang, SE-FIT-HUT
Chương 02: Biểu diễn dữ liệu trong máy tính
2.1 Biểu diễn dữ liệu trong máy tính,
đơn vị thông tin
2.2 Biểu diễn số trong các hệ đếm
2.3 Biểu diễn số nguyên
2.4 Tính toán số học với số nguyên
2.5 Tính toá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
Trang 542.4.1 Cộng số nguyên không dấu
Tiến hành cộng lần lượt từng bít từ phải qua trái theo nguyên tắc:
Trang 55 Nguyễn Thị Thu Trang, SE-FIT-HUT
2.4.1 Cộng số nguyên không dấu (2)
Khi cộng hai số nguyên không dấu n bit ta thu được kết quả tổng cũng được biểu
Trang 562.4.1 Cộng số nguyên không dấu (3)
Trường hợp không xảy ra tràn số:
Trang 57 Nguyễn Thị Thu Trang, SE-FIT-HUT
2.4.2 Cộng/trừ số nguyên có dấu
a Cộng số nguyên có dấu:
Khi cộng hai số nguyên có dấu n bit, ta không quan tâm đến bit nhớ ra ngoài (Cout)
và kết quả nhận được cũng là n bit
Cộng hai số khác dấu: Kết quả luôn đúng
Tràn số học xảy ra khi tổng thực sự của hai số nằm
ngoài dải biểu diễn của số nguyên có dấu n bit:
[-2n-1, 2n-1-1]
Trang 58a Cộng số nguyên có dấu (2)
Ví dụ: Không tràn số
Trang 59 Nguyễn Thị Thu Trang, SE-FIT-HUT
Ví dụ: Có xảy ra tràn số:
Trang 61 Nguyễn Thị Thu Trang, SE-FIT-HUT
2.4.3 Nhân/chia số nguyên không dấu
Các bước thực hiện như trong hệ 10
1011 1011 -
10001111 (143(10) – Tích)
Các t
Các tích riêng phần
Trang 622.4.3 Nhân/chia số nguyên không dấu (2)
Ví dụ: Phép chia
Trang 63 Nguyễn Thị Thu Trang, SE-FIT-HUT
2.4.4 Nhân/chia số nguyên có dấu
a Nhân số nguyên có dấu:
Bước 1: Chuyển đổi số nhân và số bị nhân thành số
dương tương ứng
Bước 2: Nhân 2 số bằng thuật giải nhân số nguyên
không dấu Được tích 2 số dương
Bước 3: Hiệu chỉnh dấu của tích:
Nếu 2 thừa số ban đầu cùng dấu Kết quả là tích thu được trong bước 2.
Nếu khác dấu Kết quả là số bù 2 của tích thu được trong bước 2.
Trang 642.4.4 Nhân/chia số nguyên có dấu (2)
a Chia số nguyên có dấu:
Bước 1: Chuyển đổi số chia và số bị chia thành số
dương tương ứng
Bước 2: Chia 2 số bằng thuật giải chia số nguyên
không dấu Thu được thương và dư đều dương
Bước 3: Hiệu chỉnh dấu của kết quả theo quy tắc sau:
Trang 65 Nguyễn Thị Thu Trang, SE-FIT-HUT
Chương 02: Biểu diễn dữ liệu trong máy tính
2.1 Biểu diễn dữ liệu trong máy tính,
đơn vị thông tin
2.2 Biểu diễn số trong các hệ đếm
2.3 Biểu diễn số nguyên
2.4 Tính toán số học với số nguyên
2.5 Tính toá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
Trang 662.5 Tính toán logic với số nhị phân
Trang 67 Nguyễn Thị Thu Trang, SE-FIT-HUT
2.5 Tính toán logic với số nhị phân (2)
Kết quả của các phép toán logic với 2 số nhị phân là một số nhị
Trang 682.5 Tính toán logic với số nhị phân (tiếp)
+ AND: xoá một số bit và giữ nguyên 1 số bit còn lại
+ OR: Thiết lập 1 số bit và giữ nguyên 1 số bit còn lại
+ XOR: Đảo 1 số bit và giữ nguyên 1 số bit còn lại
+ NOT: Đảo tất cả các bit
Trang 69 Nguyễn Thị Thu Trang, SE-FIT-HUT
Chương 02: Biểu diễn dữ liệu trong máy tính
2.1 Biểu diễn dữ liệu trong máy tính,
đơn vị thông tin
2.2 Biểu diễn số trong các hệ đếm
2.3 Biểu diễn số nguyên
2.4 Tính toán số học với số nguyên
2.5 Tính toá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
Trang 70 Các bộ ký tự cần được chuẩn hóa
Số bit dùng cho mỗi ký tự theo các mã khác nhau là
khác nhau.
Ví dụ:
Bộ mã ASCII dùng 8 bit cho 1 ký tự
Bộ mã Unicode dùng 16 bit cho 1 ký tự
Trang 71 Nguyễn Thị Thu Trang, SE-FIT-HUT
2.6.1 Bộ mã ASCII
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 cho 8 bit và có thể biểu diễn 256 ký tự khác nhau trong
máy tính
Bộ mã 8 bit → mã hóa được cho 28 = 256 kí tự, có mã từ 0016 ÷ FF16, bao gồm:
128 kí tự chuẩn có mã từ 0016 ÷ 7F16
128 kí tự mở rộng có mã từ 8016 ÷ FF16
Trang 73 Nguyễn Thị Thu Trang, SE-FIT-HUT
2.6.1 Bộ mã ASCII (tiếp)
95 kí tự hiển thị được: Có mã từ 2016÷7E16
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ừ
Trang 742.6.1 Bộ mã ASCII (tiếp)
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
Trang 75 Nguyễn Thị Thu Trang, SE-FIT-HUT
Điều khiển định dạng
Trang 76Điều khiển truyền số liệu
Trang 77 Nguyễn Thị Thu Trang, SE-FIT-HUT
Điều khiển phân cách thông tin
Trang 78Các kí tự điều khiển khác
Trang 80 Các nhà phát triển phần mềm tiếng Việt cũng đã thay
đổi phần này để mã hoá cho các ký tự riêng của chữ
Việt, ví dụ như bộ mã TCVN 5712
Trang 81 Nguyễn Thị Thu Trang, SE-FIT-HUT
2.6.2 Bộ mã Unicode
Vò những năm 1990, các hãng máy tính hàng đầu đã thiết kế ra bộ mã này với mục
đích toàn cầu hóa
Là bộ mã 16-bit số ký tự có thể biểu diễn (mã hoá) là 216
Được thiết kế cho đa ngôn ngữ, trong đó có tiếng Việt
Trang 82Chương 02: Biểu diễn dữ liệu trong máy tính
2.1 Biểu diễn dữ liệu trong máy tính,
đơn vị thông tin
2.2 Biểu diễn số trong các hệ đếm
2.3 Biểu diễn số nguyên
2.4 Tính toán số học với số nguyên
2.5 Tính toá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
Trang 83Có 2 cách biểu diễn số thực trong máy tính:
Số dấu chấm tĩnh (fixed-point number)
Dấu chấm là cố định (số bit dành cho phần nguyên và phần
lẻ là cố định)
Dùng trong các bộ vi xử lý hay vi điều khiển thế hệ cũ
Số dấu chấm động (floating-point number):
Dấu chấm không cố định
Dùng trong các bộ vi xử lý hiện nay, có độ chính xác cao
hơn
Trang 86b Phép toán với các số thực
Khi thực hiện phép toán với số dấu chấm động sẽ được tiến hành trên cơ sở các
giá trị của phần định trị và phần mũ
Trang 90m là các bit phần lẻ của phần định trị M, phần định trị được ngầm định như sau: M = 1.m
Công thức xác định giá trị của số thực tương ứng là:
X = (-1)S x 1 x 1.m x 2e-b
Trang 92Ví dụ 2
Xác định giá trị thập phân của số thực X có dạng biểu diễn theo chuẩn IEEE 754
dạng 32 bit như sau:
0011 1111 1000 0000 0000 0000 0000 0000Giải:
Trang 94Các quy ước đặc biệt
Nếu tất cả các bit của e đều bằng 0, các bit của m đều bằng 0, thì X = ± 0
Nếu tất cả các bit của e đều bằng 1, các bit của m đều bằng 0, thì X = ± ∞
Nếu tất cả các bit của e đều bằng 1, m có ít nhất một bit bằng 1, thì X không phải là
số (not a number - NaN)
Trang 96Trà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 ngoài bit cao nhất
Tràn trên 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ị
Trang 97 Nguyễn Thị Thu Trang, SE-FIT-HUT
Câu hỏi