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

Thập phân chuyển đổi sang nhị phân ppt

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 (787.98 KB, 13 trang )

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


×