Tuy nhiên so với hệ nhị phân, hệ thập lục phân có những điểm nổi trội hơn như: + Khả năng biểu diễn đữ liệu một cách ngắn gọn hơn: mỗi chữ số thập lục phân tương đương với 4 chữ số nhị p
Trang 1———— OST TRUONG DAI HOC DONG THAP
KHOA SU PHAM TOAN - TIN
CHUONG TRINH THUC HIEN CAC PHEP TOAN
TREN HE THAP LUC PHAN
Sinh viên thực hiện:
Trần Thi Cam Ngoc Dang Thi Kim Ngoc Nguyén Huynh Thao Vy
Nguyén Ngoc Mai Thy
Giảng viên hướng dan:
Ths Nguyễn Thị ThPy Linh
NĂM HỌC 2023 - 2024
Trang 2
TRUONG DAI HOC DONG THAP
KHOA SU PHAM TOAN - TIN
CHUONG TRINH THUC HIEN CAC PHEP TOAN
TREN HE THAP LUC PHAN
Sinh viên thực hiện:
Tran Thi Cam Ngoc Dang Thi Kim Ngoc Nguyén Huynh Thao Vy
Nguyễn Ngọc Mai Thy
Giảng viên hướng dẫn:
Ths Nguyễn Thị ThPy Linh
NAM HOC: 2023 - 2024
1
Trang 3LOI CAM ON Chúng em xin chân thành gửi lời cảm ơn sâu sắc đến cô Nguyễn Thị Thùy Linh đã tạo điều kiện để chúng em thực hiện đề tài nghiên cửu của mình Nhờ sự giúp đỡ, hỗ trợ, trao đổi, góp ý của cô đã giúp chúng em biết cách làm việc khoa học hơn, nâng cao năng lực, bỗ sung nhiều kiến thức chuyên ngành phục vụ cho dự án nghiên cứu cũng như hoàn thiện kỹ năng giao tiếp, kỹ năng tìm hiểu tài liệu
Tuy nhiên đo còn gặp nhiều khó khăn trong quá trình tiếp cận thực tế, hạn chế về kiến thức chuyên môn và kinh nghiệm nên đề tài nghiên cứu không thê tránh khỏi những sai sót Vì vậy, chúng em rat mong được sự góp ý của cô để đề tài được hoàn chỉnh và ứng dụng tốt vào thực tiễn
Chung em xin chan thành cảm ơn./
Trang 4DANH SANH SINH VIEN NHOM 3
4 0022412543 | Nguyén Ngoc Mai Thy Email: elisa0 1223(@gmail.com DT.0907285187
Trang 5
BANG PHAN CONG CONG VIE YC
Thiết kế file trình chiếu
Dang Thi Kim Ngoc
Nội dung chính chương 3;
GIải các bai tap minh hoa;
Thiết kê file trình chiều
Nguyễn Ngọc Mai Thy
Trang 6ĐÁNH GIÁ CỦA GIẢNG VIÊN HƯỚNG DẪN
*Chủ ý: Sai mẫu sẽ không chấm điểm, nộp trể hạn bị trừ 0.5 điễm/Ingày
2.1 Nêu được kết quả chính đạt 05
được của đề tải
2.2 Trình bày có hệ thông, logic
3.2 Hiệu quả, đáp ứng yêu câu 2.0
Ngày nộp: 6/12/2023 Người nộp
Trần Thị Cam Ngoc MUC LUC
Trang 7DANH MUC THUAT NGU VIET TAT DANH MUC HiNH ANH
Trang 8CHUONG 1: MO DAU 1.1 Ly do chon dé tai
- Chung ta co thé biét cac phép toan số học hệ thập lục phân là hệ thống biểu diễn
số học trong máy tính và các thiết bị điện tử khác Tuy nhiên so với hệ nhị phân, hệ thập
lục phân có những điểm nổi trội hơn như:
+ Khả năng biểu diễn đữ liệu một cách ngắn gọn hơn: mỗi chữ số thập lục phân tương
đương với 4 chữ số nhị phân (2^4) Do đó, để biểu diễn cùng một giá trị, cần ít "chữ số"
hơn trong hệ thập lục phân so với hệ nhị phân Điều này giúp giảm kích thước đữ liệu và tăng hiệu suất trong một số trường hợp
+ Đối với các ứng dụng đòi hỏi độ chính xác cao: Trong các ứng dụng đòi hỏi độ chính xác cao, như tính toán khoa học, đỗ họa, và mô phỏng, hệ thập lục phân có thể đảm
bảo sự chính xác cao hơn so với hệ nhị phân Điều này là do mỗi chữ số thập lục phân
biéu diễn một khoảng giá trị lớn hơn so với mỗi chữ số nhị phân
+ Chuyến đôi dữ liệu dễ dàng hơn: Khi cần chuyên đôi giữa các hệ thông biêu diễn số khác nhau, hệ thập lục phân thường dễ dàng chuyển đổi hơn do mỗi chữ số thập lục phân
biểu diễn một số lượng lớn g1ả trị so với mỗi chữ số nhị phân
Như vậy có thê thấy, việc thực hiện các phép toán thập lục phân trực tiếp giúp tôi
ưu hóa hiệu suất và tăng tốc quá trình xử lý đữ liệu; giúp đễ đàng chuyền đổi giữa các biểu diễn số học khác nhau; sử dụng phép toán hệ thập lục phân là cần thiết dé triên khai các giải thuật bảo mật mà các hệ thống đòi hỏi Từ những lý do trên chúng em quyết định chọn đề tài nghiên cứu “chương trình thực hiện các phép toán trên hệ thập lục phân ” đề
hiểu rõ cơ chế hoạt động, các khái niệm và thuật toán liên quan để vận dụng vào thực
tiễn
1.2 Mục tiêu nghiên cứu
- Nghiên cứu được thực hiện với ba mục tiêu chính:
+ Lĩnh hội được các kiến thức lý thuyết có liên quan về chương trình các phép toán số
học của hệ thập lục phân
Trang 9+ Phân tích các bài toán, đưa ra giải thuật đề giải quyết vấn đề của chương trình Cũng
như cách thức cài đặt và chạy một chương trình
+ Đưa ra kết luận và đề xuất cho vẫn đề nghiên cứu
1.3 Phương pháp nghiên cứu
Phương pháp nghiên cứu lý thuyết: chủng em đã sử dụng phương pháp này đề lược khảo các tài liệu có liên quan về các phép toán số học thập lục phân bao gồm: tổng hợp, phân tích tài liệu đề giúp chúng em có cái nhìn tổng quan hơn về đề tài của mình Từ đó vạch ra phương hướng nghiên cứu cụ thể cho đề tài
Phương pháp nghiên cứu phân loại: chủng em sử dụng phương pháp này để phân chia kiến thức nghiên cứu cho từng bài toán theo những tiêu chí nhất định Vận dụng
phương pháp này đề thuận tiện cho việc tìm kiếm, thu thập tài liệu cũng như chọn lọc các tài liệu tìm được Các dữ liệu thu thập được, nhóm sẽ tiễn hành phân loại và sắp xếp theo từng nội dung cụ thể để thuận tiện cho việc phân tích, đánh giá
Phương pháp nghiên cứu phân tích, so sánh: phương pháp này chúng em xem là thao tác quan trọng để tìm ra bản chất của vấn đề nghiên cứu Trong quá trình biên tập phan mềm, chúng em cần dựa trên những phân tích nội dung chương trình, yêu cầu của đề
tài nghiên cứu để có sự lựa chọn, định hướng nội dưng sao cho phù hợp Thao tác so sánh
giúp nhóm chọn lọc được tài liệu tôi ưu, đáng tin cậy đề sử dụng trong phần mềm cũng như so sánh thuật toán nghiên cứu của mình Phương pháp này cũng là khâu quan trọng sau khi tién hanh demo chương trình Chúng em tiến hành phân tích dữ liệu thu được để đánh giá, so sánh và kết luận vẫn đề nghiên cứu
1.4 Tiến trình nghiên cứu
Giai đoạn 1: Chuẩn bị nghiên cứu
Bước L: Chọn đề tài
Bước 2: Thu thập tài liệu
Bước 3: Xác định vấn đề nghiên cứu, bao gồm: đối tượng nghiên cứu, phạm vi nghiên cứu, mục tiêu nghiên cứu, nội dung nghiên cứu và phương pháp nghiên cứu
Trang 10Bước 4: Lập kế hoạch nghiên cứu và xây dựng đề cương nghiên cửu
Giai đoạn 2: Triển khai thực hiện
Bước l1: Tìm hiểu các phép toán
Bước 2: Giải các bài toán ứng dụng và cài đặt chương trình
Bước 3: Kiểm tra và chỉnh lỗi
Giai đoạn 3: Viết báo cáo kết quả đã thực hiện và đưa ra đề xuất
1.5 Nội dung nghiên cứu
Nghiên cứu chương trình thực hiện các phép toán số học thập lục phân bao gồm: các lý thuyết có liên quan, bài toán, thuật toán về các phép toán số học thập lục phân Rút
ra những kết luận và đề xuất
1.6 Kế hoạch nghiên cứu
whan nhiệm vụ nghiên | + tình nội dung đề tải 7/9 - 12/9
Tìm hiểu tài liệu Chọn lọc được tài liệu 12/9 - 15/9
: | Xác định nội dung nghiên | phạm vi, mục tiêu nội dung 15/9 - 22/9
Lập ke hoach nghiên cựu Xây dựng được dàn ý của
nghiên cứu
Giai đoạn 2: | Giải các bài toán ứng | Vận dụng được kiên thức lý 15/10 - Tnénkhai | dụng và cài đặt chương | thuyết đề ứng dụng vào bài
wR er , 4x: | Khắc phục được lỗi sai của 2/11-
Trang 11
CHUONG 2: NOI DUNG NGHIEN CUU 2.1 Cơ sở lý thuyết và chương trình nghiên cứu
Trong toán học và trong khoa học điện toán, hệ thập lục phân (hay hệ đếm cơ số
16, tiếng Anh: hexadecmal), hoặc chỉ đơn thuần gọi là thập lục, là một hệ đếm có l6 ký
tự, từ 0 đến 9 và A đến F (chữ hoa và chữ thường như nhau) Biêu thị số thập lục phân có
nhiều sự khác biệt so với các hệ nhị phân và thập phân, về kí hiệu và kí dụng
Các phép toán số học đối với hệ thập lục phân vẻ cơ bản là những phép toán logic( công, trừ, nhân, chia)
về các ứng dụng và tiện ích của hệ thập lục phân, giúp người dùng đễ đàng trong chuyên đôi hệ số và xử lý thông tin đầu vào và nhiều tiện ích khác
2.2 Lý thuyết về hệ thập lục phân
Hệ thập lục phân hay còn gọi là “hệ cơ số 16” mô tả một hệ thống đánh số có chứa 16 số liên tiếp làm đơn vị cơ sở (bao gồm cả 0) trước khi thêm một vị trí mới cho số tiếp theo
2.2.1 Lich sử ra đời của hệ thập lục phần
Hệ thống cơ sở thập lục phân hiện nay đã được IBM giới thiệu với thế giới điện toán vào năm 1963 Tiền thân của hệ thập lục phân là hệ thống được sử dụng trong máy tinh Bendix G-I5 Hệ thống này bao gồm các ký tự từ 0 đến 9 và ký tự từ A đến F 2.2.2 Biểu diễn số thập lục phân
Hệ thập lục phân tên tiếng Anh là Hệ thập lục phân, hay còn gọi là hệ 16, là một hệ đêm có 16 ký số 0 đến 9 và A đến F (không phân biệt chữ hoa và chữ thường)
Khác với hệ nhị phân, mỗi số hex trong hệ thập lục phân được thể hiện bằng 4 bịt
Mỗi nhóm bít này đều được quy định giá trị riêng Gia tri này được tính trong khoảng từ
0000 đến 1111 Trong đó các số được biểu dién dưới đạng:
Trang 12- Dưới đạng In ấn, ký hiệu của hệ thường được chỉ định bởi một hậu tô, chăng hạn
5A316, 5A3SIXTEEN, hoặc 5A3HEX
- Một số ký dụng thường thấy của hệ thập lục phân:
+ Ada và VHDL gói những số thập lục phân dùng gốc của hệ, điểm chí bằng con số biểu đạt góc, chăng hạn "16#5A3#" (Chủ ý: Ada chấp nhận phương thức ký dụng nay cho các hệ, từ nhị phân cho đến thập lục phân, cho cả hai loại sống nguyên (integer) và số thực (real)
+ C và những ngôn ngữ lập trình có ngữ pháp tương ứng (như C++, C#, Java và
Zz A 6699
Javascript) ding tién tố “x” cho các số thap luc phan, chang han “0x5A3” (S6 khéng (0)
Trang 13dẫn đầu được dùng đề bộ thanh lọc mã (parser) có thê trực tiếp nhậnbiết một con số, trong khi chữ "x" đại biêu cho chữ hexadecimal (thập lục phân))
+ Trong HTML, những ký hiệu hệ thập lục phân cũng được biểu thị với cách dùng chữ “x”: ֣ sẽ tương đương như ᑃ
+ Một vài ngôn ngữ assembly chỉ định thập lục phân bằng cách cho thêm chữ “h” vào đuôi (nếu con số bắt đầu bằng một chữ, đồng thời đứng sau một con số 0, chỉ định rằng nó
là một con số), chăng han "OA3Ch", "5A3h"
2.2.4 Chuyển đổi trong hệ thống đếm
*Hệ thập phân chuyên sang hệ thập luc phan: oct > hex
- Giải thích thuật toán:
+ Bước 1: Thực hiện cho phép chia nguyên của phân tích số cần chuyên cho l6 và
ghi lại kết quả dư thừa
+ Bước 2: Nếu số lượng phép chia khác 0 thì tiếp tục lặp lại bước 1 Ngược lại chuyển qua bước 3
+ Bước 3: Ghi ngược các số dư theo thứ tự ngược lại
e© Ví dụ: thực hiện một số chuyển đổi ví dụ: 923410) = ?qø
Lan 1: 923/16 được 57 dư 11 (tương đương với B trong hexa)
Lần 2: 57/16 được 3 dư 9
Lần 3: 3/16 được 0 dư 3 và dừng lại
Viết các số dư theo chiều ngược lại và được ghi: 39Bh
Trang 14Hình 2: Sơ đồ thực hiện chuyền đỗi
*Hệ nhị phân chuyên sang hệ thập lục phân: đec —> hex
- Giải thích thuật toán:
+ Bước 1: Nhóm 4 bit từ bên ngoài bên phải của phân số nhị phân
+ Bước 2: Chuyên đổi từng nhóm trên sang số thập lục tương ứng với bảng dưới
Trang 15
2.2.5 Ưu điểm và nhược điểm của hệ thập lục phân
Lưu trữ được nhiều dữ liệu với lượng dữ Thực hiện các phép toán nhân, chia trong liệu lớn; hệ số hex cũng khó hơn so với các hệ
Dé dàng chuyền đổi giữa các giá trị số hơn khác;
tính
Xử lý đầu vào, đầu ra đễ đàng hơn qua
những con số đễ nhớ;
Áp dụng được vào nhiều lĩnh vực như
khoa học máy tính, lập trình, khoa hoc dtr
Bảng: Ưu điểm và nhược điểm của hệ thập lục phân
2.3 Các phép toán của hệ thập lục phân
2.3.1 Phép cộng:
- Phép cộng hệ 16 là phép tính tổng các số trong hệ số 16 Dé tính tông các số hệ
16, ta thực hiện như sau:
+ Bước I: Ghi các số hệ l6 cần tính tổng theo từng cột, bắt đầu từ cột phải nhất + Bước 2: Tính tổng các số ở cột phải nhất Nếu tông lớn hơn hoặc bằng ló, ta trừ
đi 16 và nhớ số I đến vị trí ký số kế tiếp
+ Bước 3: Ghi phần dư (nếu có) vào cột hiện tại
+ Bước 4: Tiếp tục tính tổng các số ở các cột tiếp theo Lặp lại các bước 2 và 3 cho
đến khi tính tông hết các cột
+ Bước 5: Kết quả là các số ghi ở mỗi cột sau khi tính toán xong
Vi du:
Trang 16
Hình 4: Ví dụ của phép cộng trên hệ thập luc phan
2.3.2 Phép trừ
- Phép trừ cũng có thể được thực hiện theo cách tương tự như phép cộng Lưu ý số
mượn là 16 ( Thay vì hệ thập phân thì số mượn là 10 đối với hệ thập lục phân số mượn là
Trang 17B*D=> 11*13=143 =>143/16= 8 du(15).[143/16
<=> 8*16=128 => 143-128=15=F nho 8]
D*A => 13*10=130 =>130/16= 8 du(2)+ nhớ 8 ở trên =l0=A nhớ 8 [130/16
<=> 8*16=128 =>130-128= 8 dư(2) nhớ 8 ta viết vào kq => 8A4}
Trang 18+ Hién thi mau sac trén website
+ Xác định địa chỉ bộ nhớ, thường thay la 32 bit OS va 8 ky tu hexadecimal
+ Thiét lập địa chỉ MAC của thiết bị mang
18
Trang 19xử lý
+ Ứng dụng mã hóa, tạo giá trị hàm số băm ngắn gọn, dễ nhớ
Trang 20CHUONG 3: THIET KE VA CAI DAT CHUONG TRINH
3.1 Cai dat chuong trinh
Thiết kế và cài đặt thuật toán
3.1.1 Đặt vấn đề cho bài toán
Bài toán 1: cho hai số thập lục phân a,b được nhập từ bàn phím Viết chương trình
Bài toán 2: cho hai số thập lục phân a,b được nhập từ bàn phím Viết chương trình
tính hiệu hai số a,b
Trang 21Bài toán 4: cho hai số thập lục phân a,b được nhập từ bàn phím Viết chương trình
tính thương hai số a,b
for (=l;i<=m-n;i++) a=0'+a;
Bước 3: đi từ phần tử cuối cùng bên phải rồi cộng từng phân tử từ phải qua trái theo quy
tac:
- _ đôi phân tử của xâu a,b thành hệ thập phân
Trang 22- tính tông 2 số
- _ nêu tông lớn hơn 16 thì chia 16 được kết quả là số dư k%16, và nhớ k/16 sang trái
- _ đối kết qua sang hé 16
Trang 23for (=l;i<=n-m;i++) b=0'+b;
if (n<m)
for (=l;i<=m-n;i++) a=0'+a;
Bước 3: đi từ phần tử cuối cùng bên phải rồi ta thực hiện trừ từng phần tử từ phải qua trái theo quy tắc:
đôi phần tử của xâu a,b thành hệ thập phân
xét xem có mượn Ì từ bước trước đó không, nêu có thì trừ vào số trừ 1 don vi
nêu số trừ bé hơn số bị trừ thì ta mượn l là l6 cộng vào số trừ
thực hiện trừ 2 số
đôi kết quả sang hệ l6
lưu xâu hiệu
di chuyên sang trái
Trang 24Bước 1:Thực hiện nhân 2 số bằng cách nhân lần lượt từng số hạng của b cho a
string nhan(string a, string b){
int lena = a.size();
int lenb = b.size();
Trang 25tam = doil0sang16(du) + tam;
// cOng cac sd 0 vao dau
int len = ans[ans.size() - 1].sizeQ);
for(int 1 = 0; 1< ans.size() - 1; 1++){
int len_cur = ans[i1].sizeQ);
for(int j =len_cur + 1; j<= len; j++){
Trang 27}
Bước 2: chia theo quy tắc
+ xét phần tử thứ nhất của số chia a là c, chuyển về đạng thập phân
+ gan m thành chuyến đổi của c từ hệ 16 sang hệ 10
+ nếu m lớn hơn số bi chia thì ta gan lại c=số dư, ngược lại thì thêm phần tử tiếp theo vào €
+ lưu biến kq là thương của những lần chia
string chia(string a, string b)