Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 2: Các kiểu dữ liệu và thao tác

• Dạng biểu diễn số âm dùng bit dấu và trị tuyệt đối, bit có trọng

số cao nhất sẽ quy định dấu cho số có trị tuyệt đối ngay sau,

nếu bằng 0  số dương, 1  âm.

• Dạng bù 1 sẽ biểu diễn số âm bằng việc đảo các trạng thái bit

của số dương tương ứng, đảo từ 1 qua 0, và ngược lại.

2.1.2 Soá nguyeân coù daáu (signed integer)

• Dạng bù 2 sẽ biểu diễn số âm bằng dạng bù 1 của nó công

thêm 1.

Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 2: Các kiểu dữ liệu và thao tác trang 1

Trang 1

Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 2: Các kiểu dữ liệu và thao tác trang 2

Trang 2

Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 2: Các kiểu dữ liệu và thao tác trang 3

Trang 3

Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 2: Các kiểu dữ liệu và thao tác trang 4

Trang 4

Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 2: Các kiểu dữ liệu và thao tác trang 5

Trang 5

Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 2: Các kiểu dữ liệu và thao tác trang 6

Trang 6

Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 2: Các kiểu dữ liệu và thao tác trang 7

Trang 7

Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 2: Các kiểu dữ liệu và thao tác trang 8

Trang 8

Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 2: Các kiểu dữ liệu và thao tác trang 9

Trang 9

Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 2: Các kiểu dữ liệu và thao tác trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 36 trang xuanhieu 3860
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 2: Các kiểu dữ liệu và thao tác", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 2: Các kiểu dữ liệu và thao tác

Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 2: Các kiểu dữ liệu và thao tác
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
CHÖÔNG 2
CAÙC KIEÅU DÖÕ LIEÄU VAØ THAO TAÙC
1. KIEÅU DÖÕ LIEÄU SOÁ NGUYEÂN
2. SOÁ NGUYEÂN BUØ 2
3. PHEÙP TOAÙN SOÁ HOÏC TREÂN BIT
4. PHEÙP TOAÙN LUAÄN LYÙ TREÂN BIT
5. KIEÅU DÖÕ LIEÄU DAÁU CHAÁM ÑOÄNG
2.1 KIEÅU DÖÕ LIEÄU SOÁ NGUYEÂN 
2.1.1 Soá nguyeân khoâng daáu (unsigned integer)
Duøng ñeå bieåu dieãn soá laàn laëp laïi moät taùc vuï nhaát ñònh, hay 
chæ ñòa chæ cuûa caùc oâ nhôù.
Ví duï: 102, 101101B
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
2.1 KIEÅU DÖÕ LIEÄU SOÁ NGUYEÂN 
• Dạng biểu diễn số âm dùng bit dấu và trị tuyệt đối, bit có trọng
số cao nhất sẽ quy định dấu cho số có trị tuyệt đối ngay sau,
nếu bằng 0 số dương, 1 âm.
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
• Dạng bù 1 sẽ biểu diễn số âm bằng việc đảo các trạng thái bit
của số dương tương ứng, đảo từ 1 qua 0, và ngược lại.
2.1.2 Soá nguyeân coù daáu (signed integer)
• Dạng bù 2 sẽ biểu diễn số âm bằng dạng bù 1 của nó công
thêm 1.
Daïng bieån dieãn Trò ñöôïc bieåu dieãn
Trò tuyeät ñoái coù daáu Buø 1 Buø 2
00000 0 0 0
00001 1 1 1
00010 2 2 2
00011 3 3 3
00100 4 4 4
00101 5 5 5
00110 6 6 6
00111 7 7 7
01000 8 8 8
01001 9 9 9
01010 10 10 10
01011 11 11 11
01100 12 12 12
01101 13 13 13
01110 14 14 14
01111 15 15 15
10000 -0 -15 -16
10001 -1 -14 -15
10010 -2 -13 -14
10011 -3 -12 -13
10100 -4 -11 -12
10101 -5 -10 -11
10110 -6 -9 -10
10111 -7 -8 -9
11000 -8 -7 -8
11001 -9 -6 -7
11010 -10 -5 -6
11011 -11 -4 -5
11100 -12 -3 -4
11101 -13 -2 -3
11110 -14 -1 -2
11111 -15 -0 -1
2.2 SOÁ NGUYEÂN BUØ 2 
Coù hai böôùc trong quy luaät taïo soá buø 2 cuûa moät soá:
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
- Laät ngöôïc traïng thaùi bit bieåu dieãn töø 1 qua 0, töø 0 qua
1 trong maãu, coøn goïi laø pheùp buø 1.
- Coäng 1 vaøo maãu keát quaû ôû böôùc 1, ñeå coù maãu keát quaû
sau cuøng.
2.2 SOÁ NGUYEÂN BUØ 2 
Thí duï 2.1: Tìm daïng buø 2 cho soá -12
Maãu nhò phaân cuûa trò tuyeät ñoái cuûa toaùn haïng 12 laø
01100.
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
Ta thöïc hieän hai böôùc nhö sau:
01100 
+ 10100
100000
Keát quaû laø 0 
B1. Tìm buø 1 cuûa 01100: 10011
B2. Coäng 1 vaøo daïng buø 1: 10100
2.3 PHEÙP TOAÙN TREÂN BIT – PHEÙP TOAÙN SOÁ HOÏC 
2.3.1 Coäng vaø tröø
Ví duï 2.2: Tính bieåu thöùc 11+3.Ta coù:
Trò thaäp phaân 11 ñöôïc bieåu dieãn döôùi daïng 01011
Trò thaäp phaân 3 ñöôïc bieåu dieãn ôû daïng 00011
Toång, coù trò 14, laø 01110
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
2.3 PHEÙP TOAÙN TREÂN BIT – PHEÙP TOAÙN SOÁ HOÏC 
2.3.1 Coäng vaø tröø
Thí duï 2.3: Moâ phoûng thöïc hieän pheùp tröø ôû thao taùc coäng
ôû ALU, tính bieåu thöùc: 12 – 19.
Tröôùc tieân, CPU phaân tích ñeå tính bieåu thöùc treân
ôû daïng: 12 + (-19), sau ñoù tính buø 2 cuûa 19 (010011) ñeå
coù -19 (101101). Coäng 12, (001100), vôùi -19 (101101):
001100
+ 101101
111001
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
2.3 PHEÙP TOAÙN TREÂN BIT – PHEÙP TOAÙN SOÁ HOÏC 
2.3.1 Coäng vaø tröø
Thí duï 2.4: Coäng moät soá vôùi chính noù (x + x), tính 6 + 6.
Giaû söû ta xeùt caùc maãu coù chieàu daøi 5 bit.
Maãu nhò phaân 5 bit cuûa 6 laø 00110, töùc daïng khai trieån
laø 0.2
4
+ 0.2
3
+ 1.2
2
+ 1.2
1
+ 0.2
0
Khi ta thöïc hieän 6 + 6, hay 2.6, bieåu thöùc khai trieån seõ
laø 0.2
5
+ 0.2
4
+ 1.2
3
+ 1.2
2
+ 0.2
1
Ta coù keát quaû: 01100, töùc dòch toaùn haïng ban ñaàu töøng
bit sang traùi moät vò trí.
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
2.3 PHEÙP TOAÙN TREÂN BIT – PHEÙP TOAÙN SOÁ HOÏC 
2.3.2 Môû roäng daáu
Thao taùc môû roäng theâm bit daáu (0 vôùi soá döông vaø 1 vôùi 
soá aâm) vaøo phía tröôùc daïng buø 2 seõ khoâng laøm thay ñoåi 
giaù trò cuûa soá ban ñaàu. Thao taùc naøy ñöôïc goïi laø thao taùc 
môû roäng daáu (Sign-EXTension), vaø thöôøng ñöôïc vieát taét 
laø SEXT.
Ví duï: 000101 -> 0000000000000101
100101 -> 1111111111100101
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
2.3 PHEÙP TOAÙN TREÂN BIT – PHEÙP TOAÙN SOÁ HOÏC 
2.3.3 Traøn soá
Ví duï: vôùi chieàu daøi toaùn haïng laø 5 bit, tính bieåu thöùc 9 
+ 11, ta coù: 
01001 
+ 01011
10100 
Keát quaû ai cuõng bieát laø 20, nhöng ta laïi nhaän ñöôïc moät 
soá aâm, do bit troïng soá lôùn nhaát laø 1, töùc -12!
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
2.4 PHEÙP TOAÙN TREÂN BIT – PHEÙP TOAÙN LUAÄN 
LYÙ 
Moät caùch toång quaùt, khi ñeà caäp tôùi traïng thaùi luaän lyù
ñuùng, thì ta coù theå nghó ngay noù laø bit 1, vaø ngöôïc laïi;
coøn neáu gaëp traïng thaùi luaän lyù sai, thì cuõng coù nghóa laø
ta coù bit 0.
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
2.4 PHEÙP TOAÙN TREÂN BIT – PHEÙP TOAÙN LUAÄN 
LYÙ 
2.4.1 Pheùp toaùn AND 
AND laø moät haøm luaän lyù nhò phaân, noù ñoøi hoûi hai 
toaùn haïng nhaäp, moãi toaùn haïng laø moät trò luaän lyù 0 hoaëc 
1. Ta coù theå hình dung toaùn haïng naøy hoaït ñoäng theo 
kieåu: caû hai ñuùng thì noù môùi ñuùng. 
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
2.4 PHEÙP TOAÙN TREÂN BIT – PHEÙP TOAÙN LUAÄN 
LYÙ 
2.4.1 Pheùp toaùn AND 
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
2.4 PHEÙP TOAÙN TREÂN BIT – PHEÙP TOAÙN LUAÄN 
LYÙ 
2.4.1 Pheùp toaùn AND 
Toaùn haïng naøy coù theå toång quaùt cho caùc maãu n bit.Ví duï 
2.5:
Neáu c laø keát quaû AND cuûa a vaø b, vôùi 
a = 0011 1101 vaø b = 0100 0001, thì c baèng bao nhieâu ?
a : 0011 1101 
b : 0100 0001
c : 0000 0001
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
2.4 PHEÙP TOAÙN TREÂN BIT – PHEÙP TOAÙN LUAÄN 
LYÙ 
2.4.1 Pheùp toaùn AND 
Ví duï 2.6: 
Giaû söû chuùng ta coù moät maãu nhò phaân 8 bit ñöôïc
goïi laø A, trong ñoù hai bit troïng soá nhoû nhaát beân phaûi cuûa
A coù yù nghóa quan troïng. Laøm sao caùch ly hai bit naøy ñeå
xeùt ?
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
2.4 PHEÙP TOAÙN TREÂN BIT – PHEÙP TOAÙN LUAÄN 
LYÙ 
2.4.1 Pheùp toaùn AND 
Chuùng ta duøng maët naï bit.
Moät maët naï bit laø moät maãu nhò phaân maø coù theå laøm cho
ta thaáy ñöôïc hai phaàn khaùc nhau trong caùc bit cuûa A,
phaàn ta caàn quan taâm vaø phaàn ta muoán boû qua.
Trong tröôøng hôïp naøy, maët naï bit 0000 0011 khi ñöôïc
AND vôùi A seõ taïo ra caùc bit 0 trong caùc bit töø vò trí 7 tôùi
vò trí 2, coøn caùc bit ôû vò trí 1 vaø 0 thì seõ ñöôïc giöõ nguyeân.
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
2.4 PHEÙP TOAÙN TREÂN BIT – PHEÙP TOAÙN LUAÄN 
LYÙ 
2.4.2 Pheùp toaùn OR
OR cuõng laø moät pheùp toaùn luaän lyù nhò phaân. Noù yeâu
caàu hai toaùn haïng ñaàu vaøo laø hai trò luaän lyù. Khaùc vôùi
AND, chæ caàn moät trong hai toaùn haïng ñaàu vaøo laø 1 thì
keát quaû ñaàu ra cuûa OR ñaõ laø 1.
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
2.4 PHEÙP TOAÙN TREÂN BIT – PHEÙP TOAÙN LUAÄN 
LYÙ 
2.4.2 Pheùp toaùn OR
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
2.4 PHEÙP TOAÙN TREÂN BIT – PHEÙP TOAÙN LUAÄN 
LYÙ 
2.4.2 Pheùp toaùn OR
Ví duï 2.7:
Neáu c laø keát quaû OR cuûa a vaø b,
vôùi a = 0011 1101 vaø b = 0100 0001, thì c baèng bao
nhieâu ?
a : 0011 1101
b : 0100 0001
c : 0111 1101
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
2.4 PHEÙP TOAÙN TREÂN BIT – PHEÙP TOAÙN LUAÄN 
LYÙ 
2.4.2 Pheùp toaùn OR
Ví du 2.8: Vôùi moät traïng thaùi bit ñaõ coù, ta muoán hai 
bit troïng soá nhoû nhaát cuûa noù phaûi coù traïng thaùi xaùc ñònh 
laø 11, thì maët naï 0000 0011 seõ ñöôïc OR vôùi traïng thaùi 
bit ñaõ coù. Chaúng haïn nhö:
0011 1101
0000 0011
0011 1111
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
2.4 PHEÙP TOAÙN TREÂN BIT – PHEÙP TOAÙN LUAÄN 
LYÙ 
2.4.3 Pheùp toaùn NOT 
NOT laø moät haøm luaän lyù ñôn toaùn haïng, noù chæ
caàn moät toaùn haïng nhaäp. Toaùn haïng naøy coøn ñöôïc goïi laø
toaùn haïng buø, vì noù thöïc hieän thao taùc laät ngöôïc traïng
thaùi luaän lyù töø 1 qua 0, hoaëc töø 0 qua 1.
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
2.4 PHEÙP TOAÙN TREÂN BIT – PHEÙP TOAÙN LUAÄN 
LYÙ 
2.4.3 Pheùp toaùn NOT 
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
2.4 PHEÙP TOAÙN TREÂN BIT – PHEÙP TOAÙN LUAÄN 
LYÙ 
2.4.3 Pheùp toaùn NOT 
a: 0100 0001 
thì c = NOT a: 10111110 
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
2.4 PHEÙP TOAÙN TREÂN BIT – PHEÙP TOAÙN LUAÄN 
LYÙ 
2.4.4 Pheùp toaùn Exclusive-OR (EX-OR) 
Pheùp toaùn naøy coøn ñöôïc goïi ngaén goïn laø XOR. Ñaây
laø toaùn töû hai toaùn haïng. Ñaàu ra cuûa XOR seõ laø 1 neáu
hai ñaàu vaøo laø khaùc nhau.
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
2.4 PHEÙP TOAÙN TREÂN BIT – PHEÙP TOAÙN LUAÄN 
LYÙ 
2.4.4 Pheùp toaùn Exclusive-OR (EX-OR) 
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
2.4 PHEÙP TOAÙN TREÂN BIT – PHEÙP TOAÙN LUAÄN 
LYÙ 
2.4.4 Pheùp toaùn Exclusive-OR (EX-OR) 
Ví duï 2.9: Neáu c laø keát quaû XOR cuûa a vaø b, vôùi a = 0011 
1101 vaø b = 0100 0001, thì c baèng bao nhieâu ?
a : 0011 1101
b : 0100 0001
c : 0111 1100 
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
2.5 KIEÅU DÖÕ LIEÄU DAÁU CHAÁM ÑOÄNG (Floating 
point data type)
Kieåu döõ lieäu daáu chaám ñoäng laø caùch giaûi quyeát cho vaán
ñeà bieåu dieãn soá thaäp phaân thay vì duøng daáu chaám tónh.
Caùc kieán truùc taäp leänh (ISA) ñeàu coù kieåu döõ lieäu daáu
chaám ñoäng theo ñònh daïng chuaån IEEE 754.
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
2.5 KIEÅU DÖÕ LIEÄU DAÁU CHAÁM ÑOÄNG (Floating 
point data type)
Moät trong chuùng laø kieåu float, chieàu daøi 32 bit, coù caáu 
truùc nhö sau:
1 bit cho daáu (döông hay aâm)
8 bit cho taàm (vuøng soá muõ-exponent)
23 bit cho ñoä chính xaùc (fraction)
N = (-1)
S
x 1.fraction x 2
exponent-127
, 1 ≤ exponent ≤ 254 
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
2.5 KIEÅU DÖÕ LIEÄU DAÁU CHAÁM ÑOÄNG (Floating 
point data type)
Phaàn muõ daøi 8 bit nhò phaân, bieåu dieãn 256 trò khoâng
daáu, nhöng ta chæ söû duïng 254 trò trong ñoù maø thoâi.
Vuøng muõ chöùa 0000 0000 (töùc 0), hay 1111 1111 (töùc
255) seõ cho moät yù nghóa ñaëc bieät khaùc maø ta seõ xeùt sau.
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
2.5 KIEÅU DÖÕ LIEÄU DAÁU CHAÁM ÑOÄNG (Floating 
point data type)
Ví duï 2.10: Haõy bieåu dieãn soá - ôû daïng kieåu döõ lieäu daáu
chaám ñoäng.
Ví duï 2.11: Haõy tìm trò cho daïng bieåu dieãn thuoäc kieåu 
daáu chaám ñoäng sau:
0 0111101100000000000000000000000 
5
6
8
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
2.5 KIEÅU DÖÕ LIEÄU DAÁU CHAÁM ÑOÄNG (Floating 
point data type)
Neáu phaàn muõ chöùa 00000000 thì soá muõ seõ ñöôïc xem la ø
-126, phaàn trò maëc nhieân baét ñaàu baèng bit 0 beân traùi
daáu chaám nhò phaân, tôùi daáu chaám nhò phaân, vaø theo sau
laø 23 bit phaàn trò bình thöôøng, cuï theå
(-1)
S
x 0.fraction x 2
-126
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
2.5 KIEÅU DÖÕ LIEÄU DAÁU CHAÁM ÑOÄNG (Floating 
point data type)
Ví duï, daïng bieåu dieãn daáu chaám ñoäng 
0 00000000 00001000000000000000000 
coù bit daáu baèng 0, neân laø soá döông, taùm bit keá baèng 0, 
neân soá muõ laø -126, 23 bit cuoái taïo ra daïng soá 
0.00001000000000000000000, töùc baèng 2
-5
. Nhö vaäy, soá 
ñöôïc bieåu dieãn laø 2
-5
. 2
-126
, töùc 2
-131
. 
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
2.5 KIEÅU DÖÕ LIEÄU DAÁU CHAÁM ÑOÄNG (Floating 
point data type)
Thí duï 2.12: Kieåm chöùng trò kieåu daáu chaám ñoäng cuûa 
caùc maãu sau:
0 10000011 00101000000000000000000 laø 1.00101x 2
4
= 18.5
1 10000010 00101000000000000000000 laø -1 x 1.00101x 
2
3
= -9.25 
0 11111110 11111111111111111111111 laø 1.11111 x 
2
127 
~ 2
128
1 00000000 00000000000000000000001 laø -2
-149 
0 00000000 00000000000000000000000 laø 0
+
1 00000000 00000000000000000000000 laø 0
-
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
2.5 KIEÅU DÖÕ LIEÄU DAÁU CHAÁM ÑOÄNG (Floating 
point data type)
Neáu phaàn muõ chöùa 11111111 thì ta seõ coù hai khaû naêng 
xaûy ra: 
- Neáu phaàn trò baèng 0, soá seõ laø döông voâ cöïc (+ ) hay 
aâm voâ cöïc (- ) tuøy vaøo bit daáu. 
-Neáu phaàn trò khaùc 0, luùc naøy vieäc bieåu dieãn soá daáu 
chaám ñoäng seõ khoâng laø moät soá (Not a Number - NaN), 
khoâng quan taâm tôùi bit daáu. Daïng NaN naøy baùo hieäu 
nhöõng thao taùc khoâng hôïp leä nhö nhaân zero (0) vôùi voâ 
cöïc ( ). 
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
2.5 KIEÅU DÖÕ LIEÄU DAÁU CHAÁM ÑOÄNG (Floating 
point data type)
Töông töï, kieåu double coù chieàu daøi 64 bit theo ñònh daïng 
sau: 
N = (-1)
S
x 1.fraction x 2
exponent-1023
, 1 ≤ exponent ≤ 2046
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC

File đính kèm:

  • pdfbai_giang_he_thong_may_tinh_va_ngon_ngu_c_chuong_2_cac_kieu.pdf