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
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
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 dien soaàn lëp lmoätac 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
2.1.2 Soá nguyeân coù daáu (signed integer)
• Dạng biểu diễn sệ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ược lại.
• 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
0
1
Buø 2
0
1
00000
00001
00010
00011
00100
00101
00110
00111
01000
01001
01010
01011
01100
01101
01110
01111
10000
10001
10010
10011
10100
10101
10110
10111
11000
11001
11010
11011
11100
11101
11110
11111
0
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
10
11
12
13
-0
-1
-2
-3
-4
-5
-6
8
-9
-10
-11
-12
-13
-14
-15
10
11
12
13
-15
-14
-13
-12
-11
-10
-9
-7
-6
-5
-4
-3
-2
-1
-0
10
11
12
13
14
15
-16
-15
-14
-13
-12
-11
-10
-9
-8
-7
-6
-5
-4
-3
-2
-1
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
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á:
- Laät ngöôïc traïng thai bbedien ö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.
CHƯƠNG 2
CÁC DỮ LIỆU VÀ THAO TÁC
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.
Ta thöïc hieän hai böôùc nhö sau:
B1. Tìm buø 1 cuûa 01100: 10011
B2. Coäng 1 vaøo daïng buø 1: 10100
01100
+
10100
100000
Keát quaû laø 0
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öø
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
Toång, coù trò 14, laø
00011
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.24 + 0.23 + 1.22 + 1.21 + 0.20
Khi ta thöïc hieän 6 + 6, hay 2.6, bieåu thöùc khai trieån seõ
laø 0.25 + 0.24 + 1.23 + 1.22 + 0.21
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 : 0101
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ôø, mt i00 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 : 001
b : 0100 0001
c : 0111 1101
Tải về để xem bản đầy đủ
Bạn đang xem 20 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
File đính kèm:
- bai_giang_he_thong_may_tinh_va_ngon_ngu_c_chuong_2_cac_kieu.pdf