Họ và Tên: Nguyễn Ngọc Dũng – HCMUS
Lớp : 09CK1 - MSSV: 0961027
1 | P a g e
Mục Lục
THẬP PHÂN => NHỊ PHÂN 2
Chuyển Đồi Sang Nhị Phân Số Dương – Số Âm 2
THẬP PHÂN => HEX 4
HEX => THẬP PHÂN 4
Các phép toán + - AND – OR – XOR - NOT 5
Phép cộng: 5
Phép trừ: 5
Phép nhân: 6
Phép chia: 6
Tính toán luận lý AND – OR – XOR – NOT 7
AND (a&b) 7
OR (a|b) 7
XOR (a^b) 7
NOT (~a) 8
Phép Dịch và phép Quay 8
1/ Phép dịch logic (luận lý) 8
2/ Phép dịch số học 9
3/ Phép quay trái – phải 9
Số chấm động 10
Đại số Bool 12
Figure 1 : Dịch phải Logic (luận lý) 8
Figure 2: Dịch trái logic (luận lý) 8
Figure 3: Dịch phải số học 9
Figure 4: Bảng số chuyển đổi nhị phân của phần thập phân 10
Figure 5: Các quy tắt của IEEE 754 11
Figure 6: Quy tắt IEEE 754 12
Figure 7: Các phép toán trên Đại Số Bool 13
Họ và Tên: Nguyễn Ngọc Dũng – HCMUS
Lớp : 09CK1 - MSSV: 0961027
2 | P a g e
Tràn số
+ Tràn số đối với số ko dấu: nhớ ra 1 bit
+ Tràn số với số có dấu:
- Dương + Dương = Âm && Âm + Âm = Dương
- Dương + Âm && Âm + Dương => Ko bao giờ tràn số
THẬP PHÂN => NHỊ PHÂN
Chuyển Đồi Sang Nhị Phân Số Dương – Số Âm
1. Tự nghĩ ra 5 số nguyên trong phạm vi -256 đến +256, thử đổi số đó sang hệ nhị phân
(dùng 10 bit để biểu diễn).
Nhập vào số nguyên: 6
Biểu diễn nhị phân tương ứng: 00 0000 0110
Nhập vào số nguyên: 7
Biểu diễn nhị phân tương ứng: 00 0000 0111
Nhập vào số nguyên: 8
Biểu diễn nhị phân tương ứng: 00 0000 1000
Cách 1:
Biểu diễn ở 8 bit, ta se có như sau: Ta sẽ kiểm tra số 6: 6 = 4 + 2. Ta nhận thấy 4 và 2 có
gia trị trong bảng => ta sẽ check số 1 vào, còn những ô còn lại là 0. Các số khác tương tự.
8
7
6
5
4
3
2
1
128
64
32
16
8
4
2
1
0
0
0
0
0
1
1
0
Cách 2: Ta lấy số hệ cơ số 10 chia 2 lấy dư. Số chia hết cho 2 sẽ là 0, số ko chia hết cho 2 sẽ
là 1.
Cách trên đây dùng để biễu diễn số dương.
______________________________________________________________________
Nhập vào số nguyên: -6
Biểu diễn nhị phân tương ứng: 11 1111 1010
Nhập vào số nguyên: -7
Biểu diễn nhị phân tương ứng: 11 1111 1001
Họ và Tên: Nguyễn Ngọc Dũng – HCMUS
Lớp : 09CK1 - MSSV: 0961027
3 | P a g e
Để biểu diễn 1 số âm, ta làm như sau:
Bước 1: Đầu tiên ta lấy số đối của nó:
Ví dụ : 6 số đối sẽ là -6
Quy đổi sang hệ nhị phân số đối (6), ta se được như sau: 0 0 0 0 0 1 1 0
Bước 2:Lấy bù 1 của dãy nhị phân của số 6:
Ban đầu: 0 0 0 0 0 1 1 0
Bù 1 : 1 1 1 1 1 0 0 1
Note: thấy 0 chuyển sang 1 và 1 sang 0.
Bước 3: Sau khi có bù 1, ta tiến hành kiếm bù 2:
Ta sẽ công thêm 1 vào dãy bù :
1 1 1 1 1 0 0 1
1
_________________
11 1111 1010 => bù 2
Dãy bù 2 vừa mới có chính là biễu diễn nhị phân của -6
Bước 4: Kiểm tra, ta dùng cách sau:
8
7
6
5
4
3
2
1
Kết quả
1
1
1
1
1
0
1
0
-2
7
+
2
6
+
2
5
+
2
4
+
2
3
+
2
2
+
2
1
+
2
0
=
-6
1. Tự nghĩ ra 5 số nhị phân (dùng 10 bit để biểu diễn), thử đổi các số đó sang hệ 10.
Dãy nhị phân: 11 1111 1000
Số nguyên tương ứng: -8
Dãy nhị phân: 00 0000 1001
Số nguyên tương ứng: 9
Dãy nhị phân:11 1111 0111
Số nguyên tương ứng: -9
Dãy nhị phân:00 0000 1010
Số nguyên tương ứng: 10
Dãy nhị phân:11 1111 0110
Số nguyên tương ứng: -10
Họ và Tên: Nguyễn Ngọc Dũng – HCMUS
Lớp : 09CK1 - MSSV: 0961027
4 | P a g e
Sử dụng ngược lại cách đổi từ hệ cơ số 10 => hệ cơ số 2, cách trên:
THẬP PHÂN => HEX
1/ Chuyển đổi 2540,34 (thập phân) sang hex
+ Chuyển đổi phần nguyên : 2540
2540 : 16 = 158 , dư 12 => C
158 : 16 = 9 , dư 14 => E
9 : 16 = 0 , dư 9 => 9
KQ tạm thời: CE9 (1)
Sau khi convert phần nguyên xong, để lấy kết quả, ta tiến hành đảo
ngược chuỗi (1) .
KQ1: 9EC
+ Chuyển đổi phần thập phân: 0.34
0.34 * 16 = 5.44 lấy 5 => 5
5.44 – 5 = 0.44 => 0.44 * 16 = 7.04 lấy 7 => 7
7.04 – 7 = 0.04 => 0.04 * 16 = 0.64 lấy 0 => 0
0.64 – 0 = 0.64 => 0.64 * 16 = 10.24 lấy 10 => A
10.24 – 10 = 0.24 => 0.24 * 16 = 3.84 lấy 3 => 3
…
Sau khi convert phần thập phân xong, để lấy kết quả, ta ko đảo chuỗi.
KQ2: 0.570A3…
KQ cuối cùng : 9EC, 570A3
HEX => THẬP PHÂN
1/ Chuyển đổi 9EC, 570A3 sang thập phân
+ 9EC, 570A3 = 9*16
2
+ 14*16
1
+ 12*16
0
+ 5*16
-1
+ 7*16
-2
+ 0*16
-3
+ 10*16
-4
+ 3*16
-5
= 2540 , 33999919891357421875
Họ và Tên: Nguyễn Ngọc Dũng – HCMUS
Lớp : 09CK1 - MSSV: 0961027
5 | P a g e
Các phép toán + - AND – OR – XOR - NOT
2. Mô phỏng một số phép toán trên hệ nhị phân: cộng, trừ, nhân, chia.
Phép cộng:
00100101 (76)
+
01001100 (37)
_______________
01110001
Cột
1
2
3
4
5
6
7
8
76
0
0
1
0
0
1
0
1
37
0
1
0
0
1
1
0
0
113
0
1
1
1
0
0
0
1
Bước
Tại cột
Thực hiện phép tính
1
8
1 + 0 = 1
2
7
0 + 0 = 0
3
6
1 + 1 = 10, viết 0 nhớ 1
4
5
0 + 1 = 1, cộng thêm 1 (nhớ ở bước 3), viết 0 nhớ 1
5
4
0 + 0 = 0, cộng thêm 1 (nhớ ở bước 4), viết 1
6
3
1 + 0 = 1
7
2
0 + 1 = 1
8
1
0 + 0 = 0
Vậy 00100101 (76) + 01001100 (37) = 01110001(113)
Phép trừ:
00111100 (60)
-
00011110 (30)
__________________
00011110 (30)
Cột
1
2
3
4
5
6
7
8
60
0
0
1
1
1
1
0
0
30
0
0
0
1
1
1
1
0
30
0
0
0
1
1
1
1
0
Họ và Tên: Nguyễn Ngọc Dũng – HCMUS
Lớp : 09CK1 - MSSV: 0961027
6 | P a g e
Bước
Tại cột
Thực hiện phép tính
1
8
0 – 0 = 0
2
7
0 – 1 = -1, viết 1 nhớ -1
3
6
1 – 1 = 0, cộng với -1 bước 2 là -1, viết 1 nhớ -1
4
5
1 – 1 = 0, cộng với -1 bước 3 là -1, viết 1 nhớ -1
5
4
1 – 1 = 0, cộng với -1 bước 4 là -1, viết 1 nhớ -1
6
3
1 – 0 = 1, cộng với -1 bước 5 là 0.
7
2
0 – 0 = 0
8
1
0 – 0 = 0
Vậy 00111100 (60) – 00011110 (30) = 00011110 (30)
Phép nhân:
1 0 1 0 (10)
x
1 1 1 0 (14)
_____________________
0 0 0 0 0 0 0 0
+
0 0 0 0
_____________________
0 0 0 0 0 0 0 0
+
1 0 1 0
_____________________
0 0 0 1 0 1 0 0
+
1 0 1 0
______________________
0 0 1 1 1 1 0 0
+
1 0 1 0
______________________
1 0 0 0 1 1 0 0 (140)
Phép chia:
Họ và Tên: Nguyễn Ngọc Dũng – HCMUS
Lớp : 09CK1 - MSSV: 0961027
7 | P a g e
Vậy 1001011 (75) / 1110 (14) = 5 dư 5
Tính toán luận lý AND – OR – XOR – NOT
AND (a&b)
+ Bit nào cần giữ thì AND với 1, ko giữ AND với 0
Vd:
11010110
AND
00110101
_______________
00010100
OR (a|b)
+ Bit nào cần bật lên thì OR với 1, bit nào ko quan tâm thì OR với 0
Vd:
11010110
OR
00110100
_______________
11110110
XOR (a^b)
11010110
XOR
00110100
_______________
11100010
Họ và Tên: Nguyễn Ngọc Dũng – HCMUS
Lớp : 09CK1 - MSSV: 0961027
8 | P a g e
NOT (~a)
NOT 11010110
_______________
00101001
Phép Dịch và phép Quay
1/ Phép dịch logic (luận lý)
a/ Dịch phải logic (luận lý) | chia
Figure 1 : Dịch phải Logic (luận lý)
+ Thêm 0 từ trái sang phải theo số bit yêu cầu
Ban đầu: 01010101 (85)
Dịch logic phải 2 bit: 00010101 (21) Tính nhanh: 85/2
2
= 21.25 lấy phần nguyên: 21
b/ Dịch trái logic (luận lý) | nhân
Figure 2: Dịch trái logic (luận lý)
Họ và Tên: Nguyễn Ngọc Dũng – HCMUS
Lớp : 09CK1 - MSSV: 0961027
9 | P a g e
+ Thêm 0 từ phải sang trái theo số bit yêu cầu
Ban đầu: 01010101
Dịch logic phải 1 bit: 11010100 Tính nhanh: 85*2
1
= 21.25 lấy phần nguyên: 170
2/ Phép dịch số học
a/ Dịch phải số học | chia
Figure 3: Dịch phải số học
+ Thêm 0 từ trái sang phải theo số bit yêu cầu
Ban đầu: 01010101 (85)
Dịch logic phải 2 bit: 00010101 (21) Tính nhanh: 85/2
2
= 21.25 lấy phần nguyên: 21
b/ Dịch trái số học | nhân
+ Thêm 0 từ phải sang trái theo số bit yêu cầu
Ban đầu: 01010101
Dịch logic phải 1 bit: 11010100 Tính nhanh: 85*2
1
= 21.25 lấy phần nguyên: 170
3/ Phép quay trái – phải
a/ Quay phải.
Ban đầu: 10100110
Quay phải 3 bit: 11010100
b/ Quay trái.
Ban đầu: 10100110
Quay trái 3 bit: 00110101
Họ và Tên: Nguyễn Ngọc Dũng – HCMUS
Lớp : 09CK1 - MSSV: 0961027
10 | P a g e
Số chấm động
6. Biểu diễn số chấm động
Figure 4: Bảng số chuyển đổi nhị phân của phần thập phân
Cho x = -14.625
Bước 1: Chuyển đổi số 14 sang hệ nhị phân và chuyển đổi 0.625 sang nhị phân
* 14 = 1110
* 0.625 ( 0.625 = 0.5 + 0 + 0125 = 101)
+ 0.625 x 2 = 1.25 => 1
+ 1.25 – 1 = 0.25 => 0.25 x 2 = 0.5 => 0
+1 – 0.5 = 0.5 => 0.5 x 2 = 1 => 1
+ 1 – 1 = 0
0.625 = 101
-14.625 = 1110.101 => 1.110101 x 2
3
k = 3
Bước 2: Chuyển đổi sang biểu diễn chấm động
Sign (là phần dấu) : - = 1
Exponet (Phần mũ) = k + 127 = 3 + 127 = 130 => 100000010
Significand (Phần trị) = 11010100000000000000000
Biểu diễn chấm động: 1 100000010 11010100000000000000000
Chuẩn số chấm động IEEE 754
+ Biểu diễn chấm động: 1 100000010 11010100000000000000000
+ Chuẩn IEEE 754:
- 1. 11010100000000000000000 x 2
100000010
~ - (1 + 2
-1
+ 2
-2
+ 2
-4
+ 2
-6
) x 2
3 = k
= -14.625
Họ và Tên: Nguyễn Ngọc Dũng – HCMUS
Lớp : 09CK1 - MSSV: 0961027
11 | P a g e
Biểu diễn bias của số vô hạn tuần hoàn.
Cho x = 1/3
X = 0.333….
= ¼ + 1/16 + 1/64 + 1/256 + …
= .0101010101… x 2
0
= 1.01010101… x 2
-2
(k = -2)
Sign (lấy dấu) : 0
Exponent (phần mũ): 127 – 2 = 125 = 01111101
Significand (phần trị): 01010101010101010101010
Biểu diễn chấm động: 0 01111101 01010101010101010101010
Chú ý:
Các số đặc biệt:
+ Phần mũ = 0 && Phần trị = 0 => số zero
+ Phần mũ = 0 && Phần trị != 0 => số dạng ko chuẩn
+ Phần mũ = 1 (all) && Phần trị = 0 => ∞ (infinity )
+ Phần mũ = 1 (all) && Phần trị != 0 => số báo lỗi (NaN – Not a Number)
Figure 5: Các quy tắt của IEEE 754
Họ và Tên: Nguyễn Ngọc Dũng – HCMUS
Lớp : 09CK1 - MSSV: 0961027
12 | P a g e
Figure 6: Quy tắt IEEE 754
Họ và Tên: Nguyễn Ngọc Dũng – HCMUS
Lớp : 09CK1 - MSSV: 0961027
13 | P a g e
Đại số Bool
Figure 7: Các phép toán trên Đại Số Bool