Tải bản đầy đủ (.pdf) (45 trang)

02 bieu dien so nguyen

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.29 MB, 45 trang )

1

HỆ THỐNG MÁY TÍNH
02 – Biểu diễn số nguyên


H c s q tng quỏt
2
ă

Tng quỏt s nguyờn cú n chữ số thuộc hệ cơ số q bất kỳ được biểu diễn:

xn -1... x1 x0 = xn -1.q n -1 + ... + x1.q1 + x0 .q 0
(mỗi chữ s xi ly t tp X cú q phn t)
ă

Vớ d:
Ô

H c s 10: A = 123 = 100 + 20 + 3 = 1.102 + 2.101 + 3.100

Ô

q = 2, X = {0, 1}: h nh phõn (binary)

Ô

q = 8, X = {0, 1, 2,…, 7}: hệ bát phân (octal)

Ô


q = 10, X = {0, 1, 2,, 9}: h thp phõn (decimal)

Ô

q = 16, X = {0, 1, 2,,9, A, B,, F}: h thp lc phõn (hexadecimal)

ă

Chuyn i: A = 123 d = 01111011 b = 173 o = 7B h

ă

H c s thng c bin din trong mỏy tính là hệ cơ số 2


Chuyn i gia cỏc h c s
3

ă

ă

c im
Ô

Con ngi s dng h thp phõn

Ô

Mỏy tớnh s dng h nh phõn, bỏt phõn, thp lc phõn


Nhu cu
Ô

Chuyn i qua li gia các hệ đếm ?
n

Hệ khác sang hệ thập phân (... à dec)

n

Hệ thập phân sang hệ khác (dec à ...)

n

Hệ nhị phân sang hệ khác và ngược lại (bin ßà …)

n




Chuyển đổi giữa các hệ cơ số
[1] Decimal (10) à Binary (2)
4
ă

ă

Ly s c s 10 chia cho 2

Ô

S d a vo kt qu

Ô

S nguyờn em chia tip cho 2

Ô

Quỏ trình lặp lại cho đến khi số ngun = 0

Ví d: A = 123
Ô

123 : 2 = 61 d 1

Ô

61 : 2 = 30 d 1

Ô

30 : 2 = 15 d 0

Kt qu: 1111011, vỡ 123 l s dng,

Ô

15 : 2 = 7 dư 1


thêm 1 bit hiển dấu vào u l 0 vo

Ô

7 : 2 = 3 d 1

Kt qu cui cựng: 01111011

Ô

3 : 2 = 1 d 1

Ô

1 : 2 = 0 d 1


Chuyển đổi giữa các hệ cơ số
[2] Decimal (10) à Hexadecimal (16)
5
ă

ă

Ly s c s 10 chia cho 16
Ô

S d a vo kt qu


Ô

S nguyờn em chia tip cho 16

Ô

Quỏ trình lặp lại cho đến khi số ngun = 0

Ví d: A = 123
Ô

123 : 16 = 7 d 12 (B)

Ô

7 : 16 = 0 d 7

Kt qu cui cùng: 7B


Chuyển đổi giữa các hệ cơ số
[3] Binary (2) à Decimal (10)
6

ă

Khai trin biu din v tớnh giỏ tr biu thức
xn -1... x1 x0 = xn -1.2 n -1 + ... + x1.21 + x0 .20

ă


Vớ d:
Ô

10112 = 1.23 + 0.22 + 1.21 + 1.20 = 1110


Chuyển đổi giữa các hệ cơ số
[4] Binary (2) à Hexadecimal (16)
7

ă

Nhúm tng b 4 bit trong biu din nh phân rồi chuyển
sang ký số tương ứng trong hệ thập lc phõn (0000
0,, 1111 F)

ă

Vớ d
Ô

10010112 = 0100 1011 = 4B16
HEX

BIN

HEX

BIN


HEX

BIN

HEX

BIN

0

0000

4

0100

8

1000

C`

1100

1

0001

5


0101

9

1001

D

1101

2

0010

6

0110

A

1010

E

1110

3

0011


7

0111

B

1011

F

1111


Chuyển đổi giữa các hệ cơ số
[5] Hexadecimal (16) à Binary (2)
8
ă

ă

S dng bng di õy chuyn i:
HEX

BIN

HEX

BIN


HEX

BIN

HEX

BIN

0

0000

4

0100

8

1000

C`

1100

1

0001

5


0101

9

1001

D

1101

2

0010

6

0110

A

1010

E

1110

3

0011


7

0111

B

1011

F

1111

Vớ d:
Ô

4B16 = 10010112


Chuyển đổi giữa các hệ cơ số
[6] Hexadecimal (16) à Decimal (10)
9

ă

Khai trin biu din v tớnh giỏ tr biu thức
xn -1... x1 x0 = xn -1.16 n -1 + ... + x1.161 + x0 .16 0

ă

Vớ d:

Ô

7B16 = 7.161 + 12 (B).160 = 12310


Hệ nhị phân
10

xn -1... x1 x0 = xn -1.2 n -1 + ... + x1.21 + x0 .20
ă

c dựng nhiu trong máy tính để biểu diện các giá trị lưu trong
các thanh ghi hoặc trong các ô nhớ. Thanh ghi hoặc ơ nhớ có kích
thước 1 byte (8 bit) hoặc 1 word (16 bit).

ă

n c gi l chiu di bit ca s ú

ă

Bit trỏi nht xn-1 l bit cú giỏ tr (nng) nht MSB (Most Significant
Bit)

ă

Bit phi nht x0 l bit ít giá trị (nhẹ) nhất LSB (Less Significant Bit)


í tng nh phõn

11

ă

S nh phõn cú th dựng biu din bt k vic gỡ m bn mun!

ă

Mt s vớ d:
Ô

Giỏ tr logic: 0 False; 1 True

Ô

Ký tự:
n

26 ký tự (A à Z): 5 bits (25 = 32)

n

Tính cả trường hợp viết hoa/thường + ký tự lạ à 7 bits (ASCII)

n

Tất cả các ký tự ngôn ngữ trờn th gii 8, 16, 32 bits (Unicode)

Ô


Mu sc: Red (00), Green (01), Blue (11)

Ô

V trớ / a ch: (0, 0, 1)

Ô

B nh: N bits Lu c ti đa 2N đối tượng


S nguyờn khụng du
12
ă

c im
Ô

Biu din cỏc i lng luụn dng
n

Ô

Vớ d: chiu cao, cõn nng, mó ASCII

Tt c bit đều được sử dụng để biểu diễn giá trị (không quan tõm n
du õm, dng)

Ô


S nguyờn khụng du 1 byte lớn nhất là 1111 11112 = 28 – 1 = 25510

Ô

S nguyờn khụng du 1 word ln nht l 1111 1111 1111 11112 = 216
1 = 6553510

Ô

Tựy nhu cu cú th s dng s 2, 3 word.

Ô

LSB = 1 thì số đó là số đó là số lẻ


S nguyờn cú du
13

ă

Lu cỏc s dng hoc õm (s cú du)

ă

Cú 4 cỏch ph bin:

ă

Ô


[1] Du lng

Ô

[2] Bự 1

Ô

[3] Bự 2

Ô

[4] S quỏ (tha) K

S cú du trong mỏy tính được biểu diễn ở dạng số bù 2


S nguyờn cú du
[1] Du lng
14

ă

ă

ă

Bit trỏi nht (MSB): bit ỏnh du õm / dng
Ô


0: s dng

Ô

1: s õm

Cỏc bit còn lại: biểu diễn độ lớn của số (hay giá tr tuyt i
ca s)
Vớ d:
Ô

Mt byte 8 bit: s cú 7 bit (trừ đi bit dấu) dùng để biểu diễn giá
trị tuyệt đối cho các số có giá trị từ 0000000 (010) đến
1111111 (12710)

à Ta có thể biểu diễn các s t 12710 n +12710
Ô

-N v N ch khỏc giỏ trị bit MSB (bit dấu), phần độ lớn (giá trị
tuyệt đối) hoàn toàn giống nhau


S nguyờn cú du
[2] Bự 1
15

ă

Tng t nh phng phỏp [1], bit MSB dựng lm bit du

Ô

0: S dng

Ô

1: S õm

ă

Cỏc bit cũn li (*) dựng lm ln

ă

S õm: Thực hiện phép đảo bit tất cả các bit của (*)

ă

Vớ d:
Ô

Dng bự 1 ca 00101011 (43) l 11010100 (43)

Ô

Mt byte 8 bit: biu din t 12710 n +12710

Ô

Ô


Bự 1 có hai dạng biểu diễn cho số 0, bao gồm: 00000000 (+0) và
11111111 (−0) (mẫu 8 bit, giống phương pháp [1])
Khi thực hiện phép cộng, cũng thực hiện theo quy tắc cộng nhị phân thơng
thường, tuy nhiên, nếu cịn phát sinh bit nhớ thì phải tiếp tục cộng bit nhớ
này vào kết quả vừa thu được


S nguyờn cú du
[3] Bự 2
16

ă

ă

Biu din ging nh s bù 1 + ta phải cộng thêm số 1 vào kết
quả (dạng nhị phân)
Số bù 2 ra đời khi người ta gặp vấn đề với hai phương pháp
dấu lượng [1] v bự 1 [2], ú l:
Ô

Cú hai cỏch biu din cho s 0 (+0 v -0) khụng ng nht

Ô

Bit nhớ phát sinh sau khi đã thực hiện phép tính phải được cộng tiếp vào
kết quả à dễ gây nhầm lẫn

à Phương pháp số bù 2 khắc phục hoàn toàn 2 vn ú

ă

Vớ d:
Ô Mt byte 8 bit: biu diễn từ −12810 đến +12710 (được
lợi 1 số vì chỉ có 1 cách biểu diễn số 0)


Số bù 1 và Số bù 2
17

Số 5 (8 bit)

0

0

0

0

0

1

0

1

Số bù 1 của 5


1

1

1

1

1

0

1

0

+

1

Số bù 2 của 5

1

1

1

1


1

0

1

1

+ Số 5

0

0

0

0

0

1

0

1

0

0


0

0

0

0

0

0

Kết quả

1


Nhn xột s bự 2
18

ă

(S bự 2 ca x) + x = một dãy tồn bit 0 (khơng tính bit 1 cao nhất
do vượt quá phạm vi lưu trữ)

à Do đó số bù 2 của x chính là giá trị âm của x hay – x (Còn gọi là
phép lấy i)

ă


i s thp phõn õm 5 sang nh phõn?

i 5 sang nhị phân rồi lấy số bù 2 của nú

ă

Thc hin phộp toỏn a b?

a b = a + (–b) à Cộng với số bù 2 của b.


S nguyờn cú du
[4] S quỏ (tha) K
19
ă

Cũn gi l biu din s dch (biased representation)

ă

Chn mt s nguyờn dng K cho trc lm giỏ tr dch

ă

Biu din s N:
ă

+N (dương): có được bằng cách lấy K + N, với K được chọn sao cho tổng của K và một s
õm bt k trong min giỏ tr luụn luụn dng


ă

ă

-N (âm): có được bằng cáck lấy K - N (hay ly bự hai ca s va xỏc nh)

Vớ d:
ă

Dựng 1 Byte (8 bit): biu din t -12810 n +12710

ă

Trong h 8 bit, biểu diễn N = 25, chọn số thừa k = 128, :

ă

ă

+2510 = 100110012

ă

-2510 = 011001112

Ch cú mt giá trị 0: +0 = 100000002, -0 = 100000002


Nhn xột
20

ă

ă

S bự 2 [3] lu tr s cú dấu và các phép tính của chúng trên
máy tính (thường dựng nht)
Ô

Khụng cn thut toỏn c bit no cho cỏc phộp tớnh cng v tớnh tr

Ô

Giỳp phỏt hin d dng các trường hợp bị tràn.

Dấu lượng [1] / số bù 1 [2] à dùng các thuật toán phức tạp và
bất lợi vì ln có hai cách biểu diễn của số 0 (+0 v -0)

ă

Du lng [1] phộp nhõn ca s cú du chm ng

ă

S tha K [4] dựng cho số mũ của các số có dấu chấm động


Biểu diễn số âm (số bù 2)
21

xn -1... x1 x0 = xn -1.( -2 n -1 ) + xn - 2 .2 n - 2... + x1.21 + x0 .20

N bits
-2n-1

2n-2







23

22

21

20

Phm vi lu tr: [-2n-1, 2n-1 - 1]
ă

Vớ d:
ă 1101 01102 = -27 + 26 + 24 + 23 + 22 + 21
= -128 + 64 + 16 + 4 + 2 =
= -4210


Ví dụ (số bù 2)
22



Tớnh giỏ tr khụng du v cú du
23

ă

Tớnh giỏ tr khụng du v cú du ca 1 s?
Ô Vớ
Ô S

d số word (16 bit): 1100 1100 1111 0000
nguyên không dấu ?

n Tt

Ô S

c 16 bit lu giỏ tr giỏ trị là 52464

nguyên có dấu ?

n Bit

MSB = 1 do đó số này là số âm

n Áp

dụng cơng thức à giá trị là –13072



Tớnh giỏ tr khụng du v cú du
24

ă

Nhn xột
Ô

Bit MSB = 0 thì giá trị có dấu bằng giá trị khụng du.

Ô

Bit MSB = 1 thỡ giỏ tr cú du bằng giá trị khơng dấu trừ đi 256
(28 nếu tính theo byte) hay 65536 (216 nu tớnh theo word).

ă

Tớnh giỏ tr khụng du v cú du ca 1 s?
Ô

Vớ d s word (16 bit): 1100 1100 1111 0000

Ô

Giỏ tr khụng du = 52464

Ô

Giỏ tr cú du: vỡ bit MSB = 1 nên giá trị có dấu = 52464 –

65536 = –13072


Phộp dch bit v phộp xoay
25

ă

Shift left (SHL): 1100 1010 1001 0100
Ô

ă

Shift right (SHR): 1001 0101 0100 1010
Ô

ă

Chuyn tất cả các bit sang phải, bỏ bit phải nhất, thêm 0 ở bit trái nhất

Rotate left (ROL): 1100 1010 1001 0101
Ô

ă

Chuyn tt c cỏc bit sang trỏi, b bit trái nhất, thêm 0 ở bit phải nhất

Chuyển tất cả các bit sang trái, bit trái nhất thành bit phi nht

Rotate right (ROR): 1001 0101 1100 1010

Ô

Chuyn tt cả các bit sang phải, bit phải nhất thành bit trái nhất


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×