Upload
vbook
View
1.349
Download
2
Embed Size (px)
Citation preview
CẤU TRÚC MÁY TÍNHCOMPUTER ARCHITECTURE
Chương 2 : Biểu diễn dữ liệu trên máy tính
Mục tiêu bài học
Mô tả hệ thống dữ liệu số trong máy tính Giải thích hệ đếm thập phân, hệ bát phân, và hệ thập
lục phân Chuyển một số từ hệ đếm này sang hệ đếm khác. Giải thích sự biểu diễn dữ liệu Giải thích sự lưu trữ dữ liệu Các phép toán nhị phân
Các hệ thống số
Hệ thống số La mã – các số được biểu diễn theo kiểu tích lũy, như: I cho 1, II cho 2, III cho 3.
Hệ thống số Ả rập – giá trị các ký hiệu tùy thuộc vào vị trí mà nó chiếm giữ, chẳng hạn hệ số thập phân.
Hệ Thập Phân
Trong hệ đếm thập phân, vị trí các số từ phải qua trái đại diện cho hàng đơn vị, chục, trăm, ngàn,…
(3 * 100) + (6*10) + (5*1) = 365 Vị trí của số quyết định giá trị của nó. Người ta gọi những loại hệ đếm này là
hệ đếm theo vị trí (positional number system).
Hệ Thập Phân (tiếp theo)
Giá trị của mỗi ký số trong một hệ đếm được xác định bởi:– Bản thân ký số đó– Vị trí của ký số đó trong dãy số.– Cơ số của hệ đếm.
Cơ số (Base)
Vị trí số
(6*10)
Hệ Nhị Phân
Hệ nhị phân dựa trên 2 cơ số, ký số gồm 0 và 1. Trong hệ đếm này, do có cơ số là 2 nên khi chúng
ta di chuyển sang trái, giá trị của ký số sẽ tăng 2 lần so với số kế trước nó.
Như vậy các giá trị của các vị trí là: 64 32 16 8 4 2 1
Số nhị phân0001111001010111
Ký hiệu bit có gía trị lớn nhất
Ký hiệu bit có giá trị bé nhất
Hệ bát phân
Hệ bát phân có cơ số là 8. Giá trị tăng từ phải qua trái là 1, 8, 64, 512, 4096…
Giá trị thập phân của số 1204 hệ bát phân là:
1204 = (1 * 512) + (2 * 64) + (0 * 8) + (4 * 1)
= 512 + 128 + 0 + 4
= 644
Hệ bát phân
Nhị phân Bát phân000 0001 1010 2011 3100 4101 5110 6111 7
Để chuyển đổi một số từ hệ nhị phân sang hệ bát phân và ngược lại, chúng ta phải nhớ bảng chuyển đổi như sau:
Hệ thập lục phân Thập lục phân Thập phân 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 A 10 B 11 C 12 D 13 E 14 F 15
Hệ thập lục phân (Tiếp theo)
Hệ đếm thập lục phân dựa trên cơ số 16 16 ký hiệu đại diện trong đó có các ký hiệu chữ
cái là A, B, C, D, E và F Biểu diễn hệ thập phân của số A0119 hệ thập
lục phân là:(10 * 65536)+(0 * 4096)+(1 * 256)+( 1 * 16) + ( 9 * 1)= 655360 + 0 + 256 + 16 + 9= 655641
Chuyển từ hệ nhị phân sang thập phân <64 <32 <16 <8 <4 <2 <1
Giá trị thập phân của 110100 là:
= (1 * 32 ) + (1 * 16) + (0 * 8) + ( 1 * 4) + ( 0 * 2) + (0 * 1)
= 32 + 16 + 0 + 4 + 0 + 0 = 52
Chuyển từ hệ nhị phân sang thập phân
Chuyển từ hệ thập phân sang hệ nhị phân
Chia số thập phân cho cho cơ số của hệ tương đương cần tính.
Ghi phần dư sang một cột và lấy thương số
chia tiếp cho cơ số. Lập lại việc tính toán trên
cho đến khi thương số có giá trị 0. Đọc và ghi phần dư theo trật tự ngược (từ
dưới lên) sẽ cho ta số cần tìm.
Chúng ta sẽ chuyển đổi một số hệ thập phân có giá trị là 52 sang số nhị phân tương ứng: 2 |__52 Phần dư
2 |__26 | 0 2 |__13 | 0 2 |__06 | 1 2 |__03 | 0 2 |__01 | 1 2 |__00 | 1
Như vậy số nhị phân tương ứng của số thập phân 52 là 110100
Chuyển hệ thập phân sang nhị phân- Ví dụ
Chuyển từ hệ nhị phân sang hệ thập lục phân
Mỗi ký số thập lục phân được đại diện bằng một nhóm 4 ký số nhị phân: Nhị phân Thập lục phân 0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000 8 1001 9 1010 A 1011 B 1100 C 1101 D 1110 E 1111 F
Chuyển từ hệ nhị phân sang hệ thập lục phân
Nhóm số nhị phân thành từng nhóm 4 ký số hướng từ phải sang trái.
Mỗi nhóm 4 ký số nhị phân sẽ được chuyển thành một ký số thập lục phân tương ứng.
Có thể thêm các số 0 vào phía trái nhất nếu cần.
Ví dụ như: Số nhị phân 10101011000010 chuyển thành số thập lục phân là:0010 1010 1100 0010 2 A C 2
Chuyển hệ thập lục phân sang hệ nhị phân
Viết ra từng nhóm 4 ký số nhị phân Ví dụ: Số thập lục phân: 191A412C0001 1001 0001 1010 0100 0001 0010 1100
Như vậy, số nhị phân tương ứng là: 11001000110100100000100101100
Các số 0 phía đầu (bên trái) có thể được loại bỏ.
Chuyển từ hệ nhị phân sang hệ bát phân
Số nhị phân sẽ được chia thành nhóm 3 ký số - từ trái sang đối với phần phân số và từ phải sang đối với phần nguyên
Mỗi nhóm có thể được thay thế bằng một ký số bát phân tương ứng.
Có thể thêm số 0 vào bên trái nếu cần
Ví dụ:Số nhị phân:
101010101010100
101 010 101 010 100 5 2 5 2 4
52524 là số bát phân tương ứng với số nhị phân ở trên.
Mỗi ký số bát phân sẽ được thay thế bằng một ‘bộ ba’ (triple) ký số nhị phân tương ứng.Ví dụ:
6 5110 101
Số nhị phân tương ứng của số bát phân 65, là 110101
Chuyền từ hệ bát phân sang hệ nhị phân
Khái niệm nhị phân-- OFF
-- ON
DATA(dạng ký số nhị phân)
Biểu diễn dữ liệu
000111 000111010101 011101000110100101010010 01010 1010101 01001 10010001 001001 0011110 0110100 101010 10010101 101010 1010000
Main(){ printf(“ Hello”);
printf(“We are enjoying a world of alphabetical coding”);
}
Biểu diễn dữ liệu
Máy tính số biểu diễn các ký tự dưới dạng mã nhị phân.
Mã nhị phân được hình thành từ các ký số nhị phân hay các bit.
Mọi ký tự được biểu diễn bằng một chuỗi các số “0” và “1”.
Byte là một chuỗi 8 bit. Hầu hết các máy tính biểu diễn một từ (word) gồm 8
hay 16 bit. Trong những hệ thống máy tính lớn thì số các bit có
thể lên tới 16 hay 32 bit.
Biểu diễn dữ liệu
Khi chúng ta nhập dữ liệu vào máy tính, các tín hiệu từ phím nhấn sẽ được chuyển thành mã ký tự nhị phân.
Mỗi ký tự được truyền tới máy in, màn hình, đĩa lưu trữ đều ở dạng mã nhị phân
Khi thể hiện trên màn hình hoặc khi in dữ liệu, ký tự sẽ được chuyển ngược thành dạng mà người dùng có thể đọc được
Lưu trữ dữ liệu
Dữ liệu được lưu trữ và xử lý trong máy tính dưới dạng nhị phân.
Các ký hiệu 0 và 1 được gọi bit 2 bit sẽ tạo ra 4 kết hợp là: 00, 01, 10, 11. Một chuỗi 8 bit được gọi là 1 byte.
Khi tính toán, số thập phân sẽ được chuyển đổi thành số nhị phân.
Sau khi tính toán xong, kết quả sẽ được chuyển thành số thập phân tương ứng.
Lưu trữ dữ liệu (Tiếp theo)
Hệ thập phân nén (Packed Decimal)
Packed decimal - cơ chế lưu trữ dữ liệu
chiếm ½ không gian giữa mã nhị phân
thuần nhất và mỗi byte cho một ký số. Người ta dùng 4 bit để lưu trữ tất cả 10
ký hiệu hình thành nên hệ thập phân. Mỗi byte sẽ biểu diễn cho 2 ký số thập
phân.
Ví dụ: số 34 sẽ được lưu trữ dưới dạng ký tự như sau:
Byte 1 Byte 200000011 000001003 4
Dùng packed decimal, số 34 sẽ được lưu trữ như sau: Byte 1 0011 0100 3 4
Packed Decimal (tiếp theo)
Phép cộng số học nhị phân
Các nguyên tắc cộng nhị phân cần chú ý: 0 + 0 = 0 0 + 1 = 1 = 1 + 0 1 + 1 = 0, nhớ 1 sang cột kế tiếp bên trái 1 + 1 + 1 = 1, nhớ 1 sang cột kế tiếVí dụ: Nhớ 1 1 1 1
11011 + 111
100010
Phương pháp trừ bù (Complementary Subtraction)
Các bước thực hiện như sau: Tìm phần bù của số trừ Cộng số bị trừ với phần bù của số trừ. Nếu kết quả nhớ 1, thì cộng kết quả
với 1, nếu không thì lấy phần bù của tổng và gắn thêm dấu âm (-).
Tìm phần bù của một số nhị phân bằng việc đảo tất cả các bit của nó.
Ví dụ: Số Phần bù 10001101 01110010 00101010 11010101
Phương pháp trừ bù (tiếp theo)
Ví dụ về một phép trừ:
Ví dụ 1 1010101 - 1001100
Bước 1. Tìm ra phần bù của 1001100 Nó là 0110011
Phương pháp trừ bù (tiếp theo)
Bước 2. cộng số trừ với phần bù nhớ 1110111 1010101
+ 0110011 0001000Do phần nhớ là 1, Cộng phần nhớ 0001000
+ 1 0001001
Phương pháp trừ bù (tiếp theo)
Ví dụ 2: 101100 - 11100101Bước 1. Phần bù của 11100101 là 00011010Bước 2.Nhớ 0111 00101100 +00011010 01000110Bước 3. Do không có phần nhớ, nên lấy phần bù của kết quả thêm vào dấu âm (-)Như vậy kết quả là: -10111001
Phương pháp trừ bù (tiếp theo)
Phép nhân
Nguyên tắc phép nhân: 0 x 0 = 0 0 x 1 = 0 1 x 0 = 0 1 x 1 = 1
Ví dụ. 10101 * 11001
10101 x11001 ------- 10101 00000 00000 10101 10101 ----------- 1000001101
Phép chia
1. Bắt đầu từ bên trái của số bị chia.
2. Thực hiện phép trừ số bị chia trừ cho số chia.a) Nếu thực hiện được phép trừ thì đặt 1 vào
thương số và trừ số chia cho số bị chia. Nếu không: đặt 0 vào thương số
b) Di chuyển đến số kế tiếp bên phải của phần còn lại.
3. Thực hiện bước 2 cho đến khi không còn ký số nào ở số bị chia.
Phép chia
Các điểm cần nhớ đối với phép chia là:0/1 = 01/1 = 1
Ví dụ:
100001 / 110Thì,
0101 (Thương số)________
(Số chia) 110 | 100001 (Số bị chia)110 --- Bước 1
1000 --- Bước 2b 110 --- Bước 2a 100 --- Bước 2b 110 --- Bước 2a 1001 --- Bước 2b 110 --- Bước 2a 11 (Phần còn dư)