Biểu diễn số chấm động bài tập code năm 2024

Biểu diễn số chấm động bài tập code năm 2024

Bài tập số chấm động

1. Chuyển đổi các số sau đây thành biểu diễn dưới dạng nhị phân của số chấm động

2010 \= 1.0100 x 2^4

20.510 \= 1.0100101 x 2^4

0.110 \= 1 x 2^1

-5.610 \= 1.1110 x 2^1

2130 \= 2^130

2. Cho biết giá trị của các biểu diễn nhị phân của các số chấm động dưới đây

0100 0110 1101 1000 0000 0000 0000 00002

s = 0, E = 1000 11012 \= 14110 (n + 127) => n = 141 – 127 = 14 (dấu chấm dịch qua trái 14

đơn vị)

M = 101 1000 0000 0000 0000 00002

1.M = 1.101 1000 0000 0000 0000 0000

Dịch ngược dấu chấm về bên phải 14 đơn vị, ta được:

A \= 110110000000000.000000000

\= 27648.02

1011 1110 1110 0000 0000 0000 0000 0000

s = 1, E = 0111 11012 \= 12510 (-n + 127) => n = 2 (dấu chấm dịch qua phải 2 đơn vị)

M = 1100 0000 0000 0000 0000 0002

1.M = 1. 1100 0000 0000 0000 0000 000

Dịch ngược dấu chấm về bên trái 2 đơn vị, ta được:

B = 0.01110000000000000000000002

\= 0.087510

0101 1111 1011 1110 0100 0000 0000 0000

  • 1. Nguyễn Ngọc Dũng – HCMUS Lớp : 09CK1 - MSSV: 0961027 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 ................................................................................................................................... 13 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.............................................................................................. 12 Figure 6: Quy tắt IEEE 754 .......................................................................................................... 13 Figure 7: Các phép toán trên Đại Số Bool .................................................................................... 14 1|Page
  • 2. Nguyễn Ngọc Dũng – HCMUS Lớp : 09CK1 - MSSV: 0961027 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 2|Page
  • 3. Nguyễn Ngọc Dũng – HCMUS Lớp : 09CK1 - MSSV: 0961027 Để 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ù : 11111001 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 -27 + 26 + 25 + 24+ 23+ 22+ 21+ 20 = -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 3|Page
  • 4. Nguyễn Ngọc Dũng – HCMUS Lớp : 09CK1 - MSSV: 0961027 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*162 + 14*161 + 12*160 + 5*16-1 + 7*16-2 + 0*16-3 + 10*16-4 + 3*16-5 = 2540 , 33999919891357421875 4|Page
  • 5. Nguyễn Ngọc Dũng – HCMUS Lớp : 09CK1 - MSSV: 0961027 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 5|Page
  • 6. Nguyễn Ngọc Dũng – HCMUS Lớp : 09CK1 - MSSV: 0961027 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) _____________________ 00000000 + 0000 _____________________ 00000000 + 1010 _____________________ 00010100 + 1010 ______________________ 00111100 + 1010 ______________________ 1 0 0 0 1 1 0 0 (140) Phép chia: 6|Page
  • 7. Nguyễn Ngọc Dũng – HCMUS Lớp : 09CK1 - MSSV: 0961027 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 7|Page
  • 8. Nguyễn Ngọc Dũng – HCMUS Lớp : 09CK1 - MSSV: 0961027 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/22 = 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ý) 8|Page
  • 9. Nguyễn Ngọc Dũng – HCMUS Lớp : 09CK1 - MSSV: 0961027 + Thêm 0 từ phải sang trái theo số bit yêu cầu Ban đầu: 01010101 Dịch logic trái 1 bit: 10101010 Tính nhanh: 85*21 = 170 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 1 hoặc 0 (dựa vào số đầu tiên) từ trái sang phải theo số bit yêu cầu Ban đầu: 10101011 (-85) Dịch logic phải 2 bit: 11101010 Ban đầu: 00010111 Dịch logic phải 1 bit: 00001011 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: 10101011 (-85) Dịch logic trái 2 bit: 1010110 0 Ban đầu: 00010111 Dịch logic trái 1 bit: 00101110 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. 9|Page
  • 10. Nguyễn Ngọc Dũng – HCMUS Lớp : 09CK1 - MSSV: 0961027 Ban đầu: 10100110 Quay trái 3 bit: 00110101 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 23  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 10 | P a g e
  • 11. Nguyễn Ngọc Dũng – HCMUS Lớp : 09CK1 - MSSV: 0961027 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 2100000010 ~ - (1 + 2-1 + 2-2 + 2-4 + 2-6) x 23 = k = -14.625 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 20 = 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) 11 | P a g e
  • 12. Nguyễn Ngọc Dũng – HCMUS Lớp : 09CK1 - MSSV: 0961027 Figure 5: Các quy tắt của IEEE 754 12 | P a g e
  • 13. Nguyễn Ngọc Dũng – HCMUS Lớp : 09CK1 - MSSV: 0961027 Figure 6: Quy tắt IEEE 754 13 | P a g e
  • 14. Nguyễn Ngọc Dũng – HCMUS Lớp : 09CK1 - MSSV: 0961027 Đại số Bool Figure 7: Các phép toán trên Đại Số Bool 14 | P a g e