Thành viên :
Nguyễn Thế Hoài Duy
Hà Lê Tuấn
Kiến trúc máy tính và hợp ngữ
Lớp: 12VP
Project 1: Số nguyên lớn
Mục tiêu
• Hiểu được phương pháp biểu diễn số nguyên ở dạng bù 2
• Hiểu và lập trình các thuật toán +, -, *, /, %, dịch trái, dịch phải, and, or, xor, not trên số bù 2
Nội Dung:
Xây dựng một chương trình hỗ trợ các phép tính +, -, *, /, %, dịch trái, dịch phải, and, or, xor, not trên số signed integer 128 bit và viết một ví dụ minh họa như sau:
• Nhập số 1:
• Nhập số 2:
• Kết Quả
o Tổng:
o Hiệu
o Tích
o Chia
o Chia lấy dư
o Dịch bit trái
o Dịch bit phải
o And
o Or
o Xor
o Not
• Lưu ý: với kết quả phép And, Or , Xor, Not cần biểu diễn dưới dạng chuỗi nhị phân
Hướng dẫn
Khai báo cấu trúc BigInt
struct BigInt {
unsigned int data[4];
};
Các hàm cần cài đặt
BigInt Sum (BigInt a, BigInt b);
BigInt Sub (BigInt a, BigInt b);
BigInt Mul (BigInt a, BigInt b);
BigInt Div (BigInt a, BigInt b);
BigInt Mod (BigInt a, BigInt b);
BigInt ShiftLeft (BigInt a);
BigInt ShiftRight (BigInt a);
BigInt And (BigInt a, BigInt b);
BigInt Or (BigInt a, BigInt b);
BigInt Xor (BigInt a, BigInt b);
BigInt Not (BigInt a, BigInt b);
BigInt atoi (char * str);
void itoa (BigInt a, char* str);
Các thuật toán chính
Đổi từ chuỗi thành số nguyên
B1:
if (stri != ‘-‘
i := 0
else
i := 1;
a := 0
B2:
temp := đổi stri thành số 128 bit;
a = a * 10 + temp;
B3:
i := i-1
lặp lại bước 2 nếu i< len(str)
B4
if str0 == ‘-‘ => a = -a;

Gợi ý: Chúng ta có thể tạo sẵn các số BigInt cho các số từ 0 tới 10;
Đổi từ số nguyên thành chuỗi: ngược lại với thuật toán đổi chuỗi thành số nguyên
Các thuật toán về số integer đọc trong slide
Yêu cầu:
• Sử dụng ngôn ngữ lập trình C++ (môi trường lập trình VS2005 đến VS2010)
• Deadline: 23g55p ngày 19/04/2013.
• Sinh viên nộp bài theo cấu trúc sau:
o Source: chứa mã nguồn của chương trình
o Release: chứa chương trình thực thi
o Doc:
 mô tả về cách thức cài đặt các hàm quan trọng
 Cho biết phạm vi biểu diễn của số nguyên 128 bit trên và giải thích
o Tất cả các thư mục này được nén lại thành file <MSSV1MSSV2>.rar hoặc <MSSV1MSSV2>.zip

Last edited Apr 2, 2013 at 11:50 AM by krapy, version 2