You are on page 1of 62

Chng 3

Biu din d liu v s hc my tnh


3.1 Cc h m c bn
3.2 M ho v lu tr d liu trong my tnh
3.3 Biu din s nguyn
3.4 S hc nh phn
3.5 Biu din s du chm ng
3.6 Biu din k t

GV: inh ng Lng

3.1 Cc h m c bn

H thp phn (Decimal System): con ngi s


dng

H nh phn (Binary System): my tnh s dng


H thp lc phn (Hexadecimal System): dng biu
din rt ngn s hc nh phn
Cch chuyn i gia cc h m.

GV: inh ng Lng

H thp phn (decimal)


B k t c s gm 10 s: 09
Dng tng qut: an-1an-2an-3a1a0,a-1 a-2a-m
A=

n 1

a *10

i= m

Trong (ai = 09).

V d: 123,45
Phn nguyn :

123 : 10 = 12 d 3
123

12 : 10 = 1 d 2
1
Phn phn :

: 10 = 0 d 1

0,45*10 = 4,5
0,5 *10 = 5

GV: inh ng Lng

=123,45
45

H nh phn (Binary)
H thp lc phn (Hexadecimal)
H nh phn(Binary)
B k t c s gm 2 s: 0,1
Dng tng qut: an-1an-2an-3a1a0,a-1 a-2a-m

A=

n 1

i
a
*
2
i

i= m

(ai = 0,1)

V d: 11011,0112 = 24+23+21+20+2-2+2-3 =27,375


Thp lc phn (hexadecimal)
B k t c s: 09,AF
Dng tngnqut:
an-1an-2an-3a1a0,a-1 a-2a-m
1

A=

i
a
*
16
i

i= m

(ai = 0..9, A..F )

V d: 89ABH = 1000 1001 1010 1011B.


GV: inh ng Lng

3.2 M ho v lu tr trong my tnh


Nguyn tc chung v m ho d liu
Mi d liu c a vo my tnh c m ho thnh
s nh phn.
Cc loi d liu:
D liu nhn to: do con ngi quy c
D liu t nhin: tn ti khch quan vi con ngi
M ho d liu nhn to
D liu s nguyn: m ho theo mt s chun qui
c
D liu s thc: m ho bng s du chm ng
D liu phi s (k t): m ho theo cc b m k t
hin hnh nh : ASCII, Unicode,
GV: inh ng Lng

M hnh m ho v ti to tn hiu vt l

T/h vl

T/h vl

B cm
bin tn
hiu
(Sensor)

B chuyn
i tng t
=> s
(ADC)

B ti to
tn hiu

B chuyn
i s=>
tng t
(ADC

Cc d liu vt l thng dng


m thanh

Hnh nh
GV: inh ng Lng

My tnh

Th t lu tr cc byte d liu MT
B nh chnh t chc lu tr d liu theo n v byte
di t d liu c th chim t 1 n 4 byte. V vy
cn phi bit th t chng lu tr trong b nh chnh
i cc d liu nhiu byte.
C hai cch lu tr c a ra
Little Endian (u nh): Byte c ngha thp hn
c lu tr trong b nh v tr c a ch nh hn.
Big Endian (u to): Byte c ngha thp hn c
lu tr trong b nh v tr c a ch ln hn.

GV: inh ng Lng

Th t lu tr cc byte d liu MT
V d: lu tr mt t 32bit
0001 1010 0010 1011 0011 1100 0100 1101B
1
A 2
B 3
C
4 DH
Biu din trong ngn nh theo 2 cch
300

4D

300

1A

301

3C

301

2B

302

2B

302

3C

303

1A

303

4D

Little Endian
GV: inh ng Lng

Big Endian

Th t lu tr cc byte d liu MT
Lu tr ca cc b vi x l in hnh
Loi my Intel: 80x86, Petium -> little endian
Motorola 680x0 v cc b x l RISC -> big endian
Power PC & Itanium: tch hp c hai cch trn

GV: inh ng Lng

3.3. Biu din s nguyn


My tnh biu din s nguyn chia thnh 2 loi
Biu din s nguyn khng du (unsign integer)
Biu din s nguyn c du (sign integer)
S nguyn khng du:
Gi s dng n bit biu din s nguyn khng du->
di m n bit biu din c t 0 -> 2n-1. Gi tr ca s
nguyn c tnh: n 1
i

i= 0

*2

Di min tr ca s nguyn khng du c biu bng


hnh trn
Gi tr nh nht bng 0
Gi tr ln nht bng 2n-1

GV: inh ng Lng

V d: S nguyn khng du
V d:

GV: inh ng Lng

n=8
n=16
n=32

028-1 (255)
0 216-1 (65535).
0232-1

S nguyn c du
S b mt v s b hai
N: Cho mt s nh phn N c biu din bi n bit. Ta
c
S b mt ca N bng (2n-1)-N
S b hai ca N bng 2n-N
V d: Cho s N = 0001 00012 c biu din bi n=8bit.
Xc nh s b 1 v b 2 ca N.
Ap dng cng thc
1111 1111 (2n-1)
0001 0001 N
s b mt ca N 1110 1110
GV: inh ng Lng

S nguyn c du
Nhn xt: s b mt ca mt s N c xc nh
bng cch o cc bit trong N
Ap dng cng thc
1 0000 0000 (2n)
0001 0001 N
s b hai ca N
1110 1111
Nhn xt: s b hai ca mt s N c xc nh
bng cch ly s b mt ca N cng thm 1
S b 2 ca N =(s b 1 ca N)+1

GV: inh ng Lng

S nguyn c du
Gi s dng n bit biu din s nguyn c du-> di
m n bit biu din c t (- 2n-1 ..-1,0 .. 2n-1-1). Gi tr
ca s nguyn c tnh theo 2 phn ring bit:
Phn gi tr dng (0 -> 2n-1-1).
Phn gi tr m (- 2n-1-1).
Di min tr ca s nguyn c du c biu bng
hnh trn
Gi tr nh nht bng - 2n-1
Gi tr ln nht bng +2n-1-1
GV: inh ng Lng

S nguyn c du
Trong : Bt c trng s cao nht (hay bit ngoi cng
bn tri ca dy nh c my tnh s dng biu din
du ca gi tr) nu:
= 0 : th s nh phn cn tnh gi tr l s dng.
Dng tng qut l: 0an-2an-3a0
= 1 : th s nh phn cn tnh gi tr l s m.
Dng tng qut l: 1an-2an-3a0
2 n 1 +

Gi tr tnh

GV: inh ng Lng

n 2

i
a
*
2
i
i =0

V d 1
V d 1: Cho

s nguyn c du biu din n=8bit sau:


A=B5H v B=6AH

Hy xc nh gi tr ca hai s nguyn c du A v B di dng


h s ngi s dng
Bi gii
Biu din s nguyn A di dng nh phn
A=B5H = 1011 01012
=>A= -128 + 53 = - 75
Biu din s nguyn B di dng nh phn
B=6AH = 0110 10102
=> B = 64+32+8+2 = 106
GV: inh ng Lng

V d 2
V d 2: Biu din s nguyn c du sau y A=+97 v
B=-101 theo hai dng kiu n=8bit v n=16bit trong my
tnh.
Li gii
Biu din s A dng s nguyn c du trong my tnh
A = 0110 00012 (n=8bit)
Biu din s B dng s nguyn c du trong my tnh
Biu din s +101 = 0110 01012
Ly b 2

1001 10112

=> B = - 101 = 1001 10112


GV: inh ng Lng

V d 2
Biu din s A dng s nguyn c du trong my tnh
A = 0000 0000 0110 00012 (n=16bit)
Biu din s B dng s nguyn c du trong my tnh
Biu din s +101 =0000 0000 0110 01012
Ly b 2

1111 1111 1001 10112

=> B =-101 = 1111 1111 1001 10112

GV: inh ng Lng

Biu din s nguyn theo m BCD


(Binary Coded Decimal Code)

Dng nhm 4 bit m ho mi s nh phn


0 -> 0000
6 -> 0110
1 -> 0001
7 -> 0111
2 -> 0010
8 -> 1000
3 -> 0011
9 -> 1001
4 -> 0100
5 -> 0101
C 6 t hp khng c s dng l: 1010, 1011,
1100, 1101, 1110, 1111.
GV: inh ng Lng

Biu din s nguyn theo m BCD


Biu din s
38 = 0011 1000BCD
61 = 0110 0001BCD

Thc hin php cng:

38

0011 1000BCD

61

0110 0001BCD

99

1001 1001BCD

275

0010 0111 0101BCD

816

1000 0001 0110BCD

1091

1010 1000 1011BCD => sai

GV: inh ng Lng

Biu din s nguyn theo m BCD


Chnh li cho ng: Cng thm 6(0110) vo cc ct
c gi tr ln hn 9 c nh. Php ton trn ta cng thm
vo ct 1 v ct 3 tnh li ta c 001BCD Ta uc 1091
275

0010 0111 0101BCD

816

1000 0001 0110BCD

1091

1010 1000 1011BCD => sai


0110 0000 0110
1 0000 1001 0001 => ng

GV: inh ng Lng

3.4 S hc nh phn
Php cng s nguyn khng du
Khi cng hai s nguyn khng du n bit
Nu khng c nh ra khi bit cao nht th kt qu nhn
c lun ng.
Nu c nh ra khi bit cao nht th kt qu nhn c
l sai. Hay ni khc hn php cng b trn(Cout =1)
Trn c nh (Carry Out) xy ra khi kt qu php ton
nhn c > 2n-1
Y(n-bit)

cin

X(n-bit)

B cng
n bit
S(n-bit)

GV: inh ng Lng

cout

3.4 S hc nh phn
Cng s nguyn c du.
Khi cng hai s nguyn c du n-bit -> Kt qu
nhn c ta khng quan tm n c mang Cout. M ta
ch nhn kt qu tnh c trong n-bit. V vy cng hai
s khc du th cho kt qu lun lun ng. Nu cng hai
s cng du nu kt qu tr v cng du ton hng thi kt
qu ng. Ngc li kt qu khc du ton hng th xy
ra hin tng trn (Overflow) kt qu sai.

GV: inh ng Lng

3.4 S hc nh phn
Php tr
Php tr s nguyn chnh l php
cng vi s o du.
V nh X-Y = X+(-Y)
Tm s o chnh l ta tm b
hai ca s .
Nguyn tc php tr: Ly b
hai ca Y ra thnh Y ri cng
vi X
GV: inh ng Lng

Y (n-bit)

X(n-bit)

B hai
-Y

B cng n-bit

S=X-Y

3.4 S hc nh phn
Nhn s nguyn khng du
1011 S b nhn
1001 S nhn
1011
0000
Tch ring phn
0000
1011
1100011 (99) -> Tch

GV: inh ng Lng

3.4 S hc nh phn
Nu bit ca s nhn l 0 => Tch ring phn bng 0
Nu bit ca s nhn l 1 => Tch ring phn l gi tr
s b nhn
Tch ring phn tip theo c dch tri 1 bit so vi
tch ring phn pha trc .
Tch bng tng cc tch ring phn.
Nhn hai s nguyn n bit. Tch c di lun chun
b 2n bit. V vy php nhn khng c khi nim trn.

GV: inh ng Lng

3.4 S hc nh phn
B nhn s nguyn khng du
Mn-1 Mn-2

* *

M1

M0

S b nhn

K cng

B cng n bit

B iu khin cng
v dch

K dch phi

An-1 An-2

* *

A1

A0

Qn-1 Qn-2

S nhn

GV: inh ng Lng

* *

Q1

Q0

3.4 S hc nh phn
START

C,A<=0; Count <= n; M <=s b nhn; Q <=s nhn

Qo=1

C,A <= A+M

Shift right C,A,Q


Count =Count-1

Count=0?

Lu thut ton cho php


nhn khng du
GV: inh ng Lng

END

V d: nhn s nguyn khng du


v d 1:
S b nhn: 1011
S nhn : 1001
Tch : 1100011
Thao tc theo s thut ton trn: M =1011

GV: inh ng Lng

V d: nhn s nguyn khng du


C
0
0
0
0
0

A
0000
1011
0101
0101
0010

Q
1001
1001
1100
1100
1110

thao tc
Qo=1
C,A=A+M
Shift right
Qo=0
Shift right

0
0

0010
0001

1110
0111

Qo=0
Shift right

0
0
0

0001
1100
0110
0110

0111
0111
0011
0011

GV: inh ng Lng

Qo=1
C,A=A+M
Shift right
-> tch cn tm nm
trong A v Q

V d: nhn s nguyn khng du


V d 2:
S b nhn: 1101
S nhn : 1010
Tch : 1000 0010
Thao tc theo s thut ton trn: M =1011

GV: inh ng Lng

V d: nhn s nguyn khng du


C

thao tc

0
0
0
0
0
0
0
0
1
0

0000
0000
0000
1101
0110
0110
0011
0011
0000
1000
1000

1010
0101
0101
0101
1010
1010
0101
0101
0101
0010
0010

Qo=0
Shift right
Qo=1
C,A=A+M
Shift right
Qo=0
Shift right
Qo=1
C,A=A+M
Shift right
-> tch cn tm nm
trong A v Q

GV: inh ng Lng

Nhn s nguyn c du
Ta c th s dng mt trong hai thut ton:
S dng thut ton nhn khng du cho s c du.
S dng thut ton gii Booth

Thut ton nhn khng du:


Chuyn s b nhn v s nhn thnh s dng
Nhn hai s dng s dng thut gii trn
Hiu chnh du ca tch
- Nu 2 tha s c cng du th kt qu tnh c l kt qu
cn tm
- Nu 2 tha s khc du th kt qu l gi tr b hai ca kt
kt qu va tnh.

Thut ton Booth


GV: inh ng Lng

Thut ton Booth:


START

C <-0; Q-1<- 0; Count <- n; M <-s b nhn; Q <-s nhn

10

QoQ-1

A <- A-M

01
A <- A+M

Shift Q,Q-1
Count =Count-1
N

Y
Count=0?

GV: inh ng Lng

END

V d: nhn s nguyn c du
V d 1:
S b nhn: 0111 (7)
S nhn : 0011 (3)
Tch : 00010101 (21)
Thao tc theo s thut ton trn: M =0111

GV: inh ng Lng

V d: nhn s nguyn c du
A
0000
1001
1100
1100
1110
1110
0101
0010
0010
0001
0001
GV: inh ng Lng

Q
Q-1
thao tc
0011
0
QoQ-1=10
0011
0
A=A-M
1001
1
Shift right
1001
1
QoQ-1=11
0100
1
Shift right
0100
1
QoQ-1=01
0100
1
A=A+M
1010
0
Shift right
1010
0
QoQ-1=00
0101
0
Shift right
0101 -> tch cn tm nm trong A v Q

V d: nhn s nguyn c du
V d 2:
S b nhn: 1001(-7)
S nhn : 0011 (3)
Tch : 1110 1010 (-21)
Thao tc theo s thut ton trn: M =1001

GV: inh ng Lng

V d: nhn s nguyn c du
A

Q-1

thao tc

0000
0000
0111
0011
0011
0001

0011
0011
0011
1001
1001
1100

0
0
0
1
1
1

khi to Q-1=0
QoQ-1=10
A=A-M
Shift right
QoQ-1=11
Shift right

0001
1010
1101

1100
1100
0110

1
1
0

QoQ-1=01
A=A+M
Shift right

1101
1110

0110
1011

0
0

QoQ-1=00
Shift right

1110

1011

GV: inh ng Lng

-> tch cn tm

V d: nhn s nguyn c du
V d 3:
S b nhn: 1001(-7)
S nhn : 1101 (-3)
Tch : 00010101 (21)
Thao tc theo s thut ton trn: M =1001

GV: inh ng Lng

V d: nhn s nguyn c du
A
0000
0000
0111
0011
0011
1100
1110

Q
1101
1101
1101
1110
1110
1110
0111

Q-1
0
0
0
1
1
1
0

thao tc
khi to Q-1=0
QoQ-1=10
A=A-M
Shift right
QoQ-1=01
A=A+M
Shift right

1110
0101
0010

0111
0111
1011

0
11

QoQ-1=10
A=A-M
Shift
right

0010
0001

1011
0101

1
1

QoQ-1=00
Shift right

GV: inh ng Lng

Lu
Ch : Shift A,Q,Q-1 l php dch tri bnh thng.
Tuy nhin bit An-1 c dch sang bit An-2, nhng
vn cn v tr sau khi dch.

GV: inh ng Lng

Chia s nguyn khng du


Php chia bao gm cc thnh phn: s b chia, s chia,
thng s v c th c c phn d na.
Thng s
1101
S chia
S b chia
1011 10010011
1011
01110
1011
001111
1011
100
GV: inh ng Lng

Phn d
ring phn
Phn d

Lu chia s nguyn khng du


START

A<- 0; Count <- n; Q <-s b chia; M <-s chia

Dch tri A,Q


A <- A-M
N

A<0?

Q0 <- 0
A <- A+M

Q0 <- 1
Count =Count-1

N
Count=0?
GV: inh ng Lng

END

Chia s nguyn c du
Chuyn i s b chia v s chia v dng s dng
S dng thut gii chia s nguyn khng du. Kt qu
thng trong Q v phn d trong A
Hiu chnh du kt qu:
S b chia

S chia

Thng

S d

Gi nguyn

Gi nguyn
kt qu
o du kt
qu
o du kt
qu
Gi nguyn
kt qu

GV: inh ng Lng

Gi nguyn
o du
o du

Biu din s du chm ng


Cho hai gi tr:
Khi lng mt tri:
199000000000000000000000000000000000g
Khi lng in t:
0.00000000000000000000000000000910956g
lu tr con s ny th my tnh cn n s bit rt
ln. Nh vy, trong trng hp ny th loi s c du
chm tnh s rt bt tin. V vy tt c my tnh lu tr
nhng s trn di dng du chm ng (floating point)
1.990 x 1033 v 0.910956x 10-27 hay theo s khoa hc l :
1.999E+33 v 0.910956E-27.
GV: inh ng Lng

Biu din s du chm ng


Dng tng qut
M.RE Trong : M (Matissa) phn nh tr
R (Radix) c s
E(Exponent) s m
X=(-1)s 1.M 2E-B
Trong : s: l bit du (s=0 phn nh tr l dng; s=1
phn nh tr l m)
M : l phn nh tr.
E: l s m c dch chuyn i B n v.
R c bit (R=2) my tnh lu s du
chm ng bao gm hai thnh phn chnh
GV: inh ng Lng

Biu din s du chm ng


Chun IEEE 754-1985 phn nh 3 dng s du chm
ng c bn
(IEEE: Institute of Electrical and Electronics Engineers )
S c chnh xc n di 32 bit (single)
S c chnh xc kp di 64 bit (double)
S c chnh xc m rng di 128bit (quadruple)

GV: inh ng Lng

Biu din s du chm ng


Loi

Single

Double

Quadruple

B rng ca
trng (bit)
S
E
M
Tng cng
E cc i
E cc tiu
dch

1
8
23
32
255
0
127

1
11
52
64
2047
0
1023

1
15
111
128
32767
0
16383

GV: inh ng Lng

Biu din s du chm ng chun IEEE 32bit


S

S=1 phn nh tr l m
S=0 phn nh tr l dng
E: gi tr E nm trong 8 bit, l s m c dch chuyn
i 127
M: phn nh tr, gi tr nm trong 23 bit
Ta c s 2345,125 trong h thp phn. Hy biu din
chng di dng chun IEEE 32bit trong my tnh
GV: inh ng Lng

Biu din s du chm ng


B1: Chuyn i s trn ra h hai
-2345,125d = -1001 0010 1001.001b (dy s nh phn
c biu din bnh thng)
B2: Chun ho theo IEEE 32bit
-1.001 0010 1001 001 x 211
B3: Xc nh cc thng s biu din s,M,E
S: phn nh tr l s m, nn s l 1
E : phn m c xc nh e = E-127
=> E = 11+127=138=10001010
M: phn nh tr c xc nh l 001 0010 1001 0010
0000 0000 (s 32 bit)
GV: inh ng Lng

Biu din s du chm ng


thc mt php cng hoc tr hai s du chm
ng phi tin hnh theo cc bc sau:
Tng s m ca s c s m nh hn cho bng s c s
m ln hn.
Cng (hoc tr) cc phn nh tr.
Nu cn thit chun ho kt qu tr li.
X1 -> M1 v E1 biu din X1 =M1*RE1
X2 -> M2 v E2 biu din X2 =M2*RE2
X1*X2 = (M1*M2)*RE1+E2
X1/ X2 = (M1 / M2)*RE1-E2

X1X =(M1*R(E1-E2) M2)*RE2 (vi gi thit E1>E2)

GV: inh ng Lng


1

Biu din s du chm ng


Mt s quy c
Nu e =255 v M<>0 -> khng phi l s
Nu e =255 v M=0 -> Gi tr m hoc dng v cng
Nu e =0 v M=0 -> gi tr bng 0
Di biu din: 2-127 n 2+127 hay tng ng 10-38 n
10+38
-2+127
Overflow

GV: inh ng Lng

-2-127 2-127

2+127

Underflow

Overflow

3.6 Biu din k t.


C hai b m thng s dng trn my tnh:
B m ASSCII
B m Unicode
B m ASCII (American Standard Code for
Information Interchange)
Do ANSI (American National Standard Institute)
thit k
B m 8 bit -> m ho 28 k t c m 00H ->FFH .
Trong
GV: inh ng Lng

3.6 Biu din k t.


128 k t chun c nh c m (00H -> 7FH)
33 k t iu khin khng th hin th nn mn hnh.
Bao gm cc k t iu khin nh dng vn bn, iu
khin truyn s liu v iu khin phn cch thng tin.
Cn li cc k t cn li hin th c l bao gm:
26 k t hoa
41h -> 5Ah
26 k t thng 61h ->7Ah
10 k t s
30h ->39h
cc du s hc v k t c bit.
GV: inh ng Lng

3.6 Biu din k t.


128 k t cn li l k t m rng c th thay i tu
nh ch to my tnh hay ngi pht trin phn mn s
dng vo nhng vic ring. C m 80H -> FFH
B m hp nht Unicode:
Do cc hng my tnh hng u th gii kt hp thit
k.
B m 16 bit c th xy dng b m ton cu 216 k t
vi 128 k t u c m trng m trong bng m ASCII.
C h tr cc k t Ting Vit
GV: inh ng Lng

Phn trao i v gii p

GV: inh ng Lng

n tp chng 3
Cc h m, ngha ca chng trong my tnh.
M ha d liu trong my tnh.
M ha s nguyn(m ha s nguyn c v khng
du).
M ha s thc (s du chm ng)
Cc thut ton tnh ton trn s hc nh phn
M ha k t (ASCII, Unicode)
Lu tr d liu trong my tnh
M phng hot ng tnh ton s hc ca ALU
GV: inh ng Lng

t cu hi
Cu 1: Kt qu hin thi ln mn hnh l bao nhiu? Khi
thc hin on lnh sau:
Var a: shortint;
Begin
a:=-1;
writeln(Gia tri a:=,a);
writeln(Gia tri ngan nho:=, mem[seg(a):ofs(a)]);
End.
Kt qu: -1 v 255
GV: inh ng Lng

t cu hi
Cu 2: Kt qu hin thi ln mn hnh l bao nhiu? Khi
thc hin on lnh sau:
Var a: shortint;
Begin
a:=-128;
writeln(Gia tri a:=,a);
writeln(Gia tri ngan nho:=, mem[seg(a):ofs(a)]);
End.
Kt qu: -128 v 128
GV: inh ng Lng

t cu hi
Cu 3: Kt qu hin thi ln mn hnh l bao nhiu? Khi
thc hin on lnh sau:
Var a: shortint;
Begin
a:=$6A;
writeln(Gia tri a:=,a);
writeln(Gia tri ngan nho:=, mem[seg(a):ofs(a)]);
End.
Kt qu: 106 v 106
GV: inh ng Lng

t cu hi
Cu 4: Kt qu hin thi ln mn hnh l bao nhiu? Khi
thc hin on lnh sau:
Var b : integer absolute 3715:100;
a : shortint absolute 3715:100;
Begin
b:=$00B5;
writeln(Gia tri a:=,a);
writeln(Gia tri ngan nho:=, mem[seg(a):ofs(a)]);
End.
Kt qu: -75 v 181
GV: inh ng Lng

t cu hi
Cu 5: Kt qu hin thi ln mn hnh l bao nhiu? Khi thc hin
on lnh sau:
Var
b : integer absolute 3715:100;
a: shortint absolute 3715:100;
Begin
b:=-75;
writeln(Gia tri a:=,a);
writeln(Gia tri ngan nho:=, mem[seg(a):ofs(a)]);
writeln(Gia tri ngan nho:=, mem[seg(a):ofs(a)+1]);
writeln(Gia tri ngan nho:=, memw[seg(a):ofs(a)]);
End.
Kt qu: -75; 181; 255 v 65461
GV: inh ng Lng

You might also like