Sáng kiến kinh nghiệm Chuyên đề hệ đếm trong Tin học
Bạn đang xem 20 trang mẫu của tài liệu "Sáng kiến kinh nghiệm Chuyên đề hệ đếm trong Tin học", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.
Tóm tắt nội dung tài liệu: Sáng kiến kinh nghiệm Chuyên đề hệ đếm trong Tin học
MỤC LỤC
Trang
1. Lời giới thiệu.....................................................................................................1
2. Tên sáng kiến:....................................................................................................2
3. Tác giả sáng kiến:..............................................................................................2
4. Chủ đầu tư tạo ra sáng kiến:..............................................................................3
5. Lĩnh vực áp dụng sáng kiến: .............................................................................3
6. Ngày sáng kiến được áp dụng lần đầu hoặc áp dụng thử ..................................3
7. Mô tả bản chất của sáng kiến: ...........................................................................3
7.1. Về nội dung của sáng kiến: .............................................................3
7.1.1. Thực trạng của vấn đề mà sáng kiến cần giải quyết ............................3
7.1.2. Các giải pháp: ......................................................................................3
7.2. Về khả năng áp dụng của sáng kiến: ............................................21
8. Những thông tin cần được bảo mật .................................................................22
9. Các điều kiện cần thiết để áp dụng sáng kiến:.................................................22
10. Đánh giá lợi ích thu được của sáng kiến .......................................................22
11. Danh sách những tổ chức đã tham gia áp dụng sáng kiến..........................24
12. Tài Liệu Tham Khảo.......................................................................25 2
Việc dùng hệ đếm nhị phân trong máy tính quả là rất tự nhiên, nhưng đứng về
phương diện giao lưu giữa máy và người thì cũng có nhược điểm quan trọng là các
số tự nhiên ghi theo hệ đếm nhị phân viết rất dài. Như con số 1000 trong hệ đếm
thập phân nếu viết dưới dạng hệ đếm nhị phân sẽ là 11000011010100000.
Để giải quyết khó khăn này, trong lí thuyết về máy tính người ta sử dụng hai
hệ đếm bổ trợ là các hệ đếm cơ số 8 và hệ đếm cơ số 16. Nhờ đó một con số có ba
chữ số trong hệ đếm cơ số 2 sẽ là một con số có một chữ số trong hệ đếm cơ số 8
chỉ bằng 1/3 độ dài của con số viết theo hệ đếm cơ số 2, so với con số viết theo hệ
đếm cơ số 8 không khác mấy so với con số viết theo cơ số 10. Ví dụ con số 100.000
viết theo hệ đếm cơ số 8 sẽ là 303240. Tương tự một con số có một chữ số viết theo
hệ đếm cơ số 16 đại diện cho một con số có 4 chữ số trong hệ đếm cơ số 2. Một kí
tự tương ứng với một con số có hai chữ số trong hệ đếm cơ số 16. Trong hệ đếm cơ
số 16 cần có 16 kí hiệu độc lập. Thực tế người ta dùng chữ số tự nhiên 1,2, 3, 4, 5,
6, 7, 8 và các chữ cái A, B, C, D, E, F đại diện cho các số 10, 11, 12, 13.14, 15 (các
chữ số trong hệ đếm thập phân). Như vậy con số 100.000 được viết là 186A0. Việc
chuyển đổi từ hệ đếm nhị phân sang hệ đếm cơ số 8 và cơ số 16 khá đơn giản; và
việc phối hợp sử dụng hệ đếm cơ số 8 và cơ số 16 sẽ tránh được phiền phức viết
những con số quá dài trong hệ đếm cơ số 2. Hệ đếm cơ số 8 và cơ số 16 đã trợ giúp
đắc lực cho việc giao lưu giữa người và máy tính.
Đối với con người thì cơ số thập phân (cơ số 10) là rất quen thuộc, chúng ta
thường thao tác, tính toán trên hệ cơ số 10. Nhưng đối với máy tính thì khác, cơ số
10 không phải là sở trường mà lại là cơ số nhị phân (tức cơ số 2). Chính vì vậy bất
kì ai học Tin học đều phải hiểu cơ số, biết cách chuyển một số từ cơ số này sang cơ
số khác. Để giúp các em học sinh hiểu rõ hơn về các hệ đếm trong tin học tôi mạnh
dạn đưa ra và hướng dẫn các em “chuyên đề hệ đếm trong tin học”
2. Tên sáng kiến:
“Chuyên đề hệ đếm trong Tin học”
3. Tác giả sáng kiến:
- Họ và tên: Nguyễn Đăng Hiệp 4
Hệ đếm La mã
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
Ví dụ: MLVI = 1000 + 50 + 5 +1 =1056
MLIV = 1000 + 50 + 5 -1 = 1054
- Hệ thập phân:
+ Mỗi chữ số x đứng ở hàng thứ i tính từ bên phải có giá trị là x.10 i-1. Như vậy một
đơn vị ở một hàng sẽ có giá trị gấp 10 lần một đơn vị ở hàng kế cận bên phải
+ Giá trị của số là tổng giá trị của các chữ số có tính tới vị trí của nó. Giá trị của
3294,5 = 3.103 + 2.102 + 9.101 + 4.100 + 5.10-1
- Các hệ đếm thường dùng là hệ đếm phụ thuộc vị trí
Ví dụ: VI và IV, V có giá trị là 5 không phụ thuộc vị trí.
Số 15 và 51 là phụ thuộc vào vị trí
- Có nhiều hệ đếm khác nhau nên muốn phân biệt số được biểu diễn ở hệ đếm nào
người ta viết cơ số làm chỉ số dưới của số đó.
Ví dụ: Biểu diễn số 7, ta viết: 1112 (hệ cơ số 2), 710 (hệ cơ số 10), 716 (hệ cơ số 16)
2. Biểu diễn số trong các hệ đếm
Các hệ đếm khi nghiên cứu máy tính:
▪ Hệ thập phân (decimal system): Con người sử dụng 6
3 2 1 0 -1 -2
1011.012 = 1x2 + 0x2 + 1x2 + 1x2 + 0x2 + 1x 2
= 1x 8 + 0 x 4 + 1 x 2 + 1 x 1 + 0x 0.5 + 1*0.25
=11.2510
Bài tập : 5AE.7B(16) = ? (10)
b. Cơ số d sang cơ số 10
B1: Xác định giá trị vị trí của mỗi ký số
B2: Nhân giá trị vị trí với ký số của cột tương ứng.
B3: Cộng kết quả của các phép tính nhân trong bước 2.
Ví dụ 1: 11001 =?
(2) (10)
4 3 2 1 0
= 1x2 + 1x2 +0x2 + 0x2 + 1x2
=16 + 8 + 0 + 0 +1 = 25
(10)
Ví dụ 2: 4706.25(8) = ?(10)
= 4x83 + 7x82 + 0x81 + 6x80+ 2x8-1+ 5x8-2
= 4x256 + 7x64 + 0x8 + 6x1 + 2x 0.125 + 5*0.015625
= 2048 + 448 + 0 + 6 + 0.25 +0.078125
= 2502.328125 (10)
Bài tập: 1AC(16) = ?(10)
405.42(7) = ? (10)
c. Cơ số 10 sang cơ số d
Chuyển phần nguyên:
▪ Lần lượt chia cho cơ số d cho đến khi thương số bằng 0.
▪ Kết quả là các dư số trong phép chia viết ra theo thứ tự ngược
lại.
Ví dụ:
Số 12(10) = ?(2) 8
▪ Kếtquả:
545(6) = 209(10)
= 3101(4)
e. Chuyển nhanh giữa các hệ cơ số 2, 8 và 16
+ Chuyển hệ 2 sang hệ 8
Bước 1: Chia số nhị phân thành các nhóm, mỗi nhóm gồm ba chữ số (bắt đầu từ
phải qua).
Bước 2: Chuyển mỗi nhóm 3 chữ số thành 1 số hệ bát phân.
Ví dụ: 101110(2) = ? (8)
2 1 0
101(2) = 1 x 2 +0 x 2 +1 x 2
= 4 + 0 + 1
= 5(10) = 5(8)
2 1 0
110(2) = 1 x 2 +1 x 2 +0 x 2
= 4 +2+0
= 6(10) = 6(8)
Kết quả: 101110(2) = 56(8)
+ Chuyển hệ 8 sang hệ 2
Bước 1: Chuyển mỗi số hệ cơ số 8 thành 3 số hệ cơ số 2.
Bước 2: Kết nối tất cả các nhóm hệ cơ số 2 (mỗi nhóm có 3 số) thành một số
hệ cơ số 2 10
2AB(16) = 0010 1010 1011
2 A B
Kết quả: 2AB(16) = 001010101011(2)
II. CỦNG CỐ LẠI KIẾN THỨC CHO HỌC SINH BẰNG CÁC BÀI TẬP CƠ
BẢN LIÊN QUAN ĐẾN NỘI DUNG KIẾN THỨC HỆ ĐẾM ĐÃ HỌC.
Câu 1: Hãy chuyển đổi các số hệ thập phân sau đây ra nhị phân :
112, 21, 32, 45, 92 , 156, 231, 143, 69
Câu 2: Hãy chuyển đổi các số thập phân sau đây ra hệ thập lục phân :
41,39,58,91,146, 246, 99,88, 140,177.
Câu 3: Hãy chuyển đổi các số nhị phân sau đây ra số thập phân:
0101 01100 , 0101 1110 , 0101 1100 , 0111 0111 , 0101 1110 , 0101 1001.
Câu 4: Hãy chuyển đổi các số nhị phân sau đây ra số thập lục phân: 0101 01100 ,
0101 1110 , 0101 1100 , 0111 0111 , 0101 1110 , 0101 1001.
Câu 5 : Hãy chuyển đổi các số thập lục phân sau đây ra thập phân : AF , 20 , A5 ,
CF , B8 , D9 , E5 .
Câu 6 : Hãy chuyển đổi các số thập lục phân sau đây ra nhị phân : AF , 20 , A5 , CF
, B8 , D9 , E5 .
Câu 7: Hãy chuyển đổi các số nguyên dương lẻ thập phân sau đây ra nhị phân :
112.18 , 21.25 , 32.04, 45.625, 92.40 , 156.2, 231.5 , 143.60 , 69.32
Câu 8: Hãy chuyển đổi các số nguyên dương thập phân sau đây ra hệ thập lục phân
: 41.32 , 39.18 , 58.16 ,91.25 , 146.2, 246.5 , 99.4 , 88.35, 140.1 , 177.625
Câu 9: Hãy chuyển đổi các số nhị phân lẻ sau đây ra số thập phân:
0101 01100.011 , 0101 1110.0011 , 0101 1100.011 , 0111 0111.1101 , 0101
1110.0111 , 0101 1001.0011
Câu 10: Hãy chuyển đổi các số nhị phân lẻ sau đây ra số thập lục phân:
0101 01100.0111 , 0101 1110.01 , 0101 1100.11001 , 0111 0111.11 , 0101
1110.1001 , 0101 1001.111 12
0101 01110.011 , 0101 1010.0011 , 0101 1100.011 , 0101 0110.1101 , 0100
1110.0111 , 0111 1001.0011
Câu 25: Hãy chuyển đổi các số nhị phân lẻ sau đây ra số thập lục phân:
0101 0100.0111 , 0101 1100.01 , 0101 1110.11001 , 0111 0011.11 , 0100
1110.1001 , 0111 1001.111
Câu 26 : Hãy chuyển đổi các số thập lục phân lẻ sau đây ra thập phân :
A1F.22 , 2E0.E , A75.2F , C0F.04 , B18.9 , D9A.E , E15.A .
Câu 27 : Hãy chuyển đổi các số thập lục phân lẻ sau đây ra nhị phân :
A1F.02 , 2E0.A , A25.EB , C.65 , B8.2 , D9.4F , E5.09
Câu 28: Đổi các số sau từ hệ thập phân sang hệ nhị phân:
a) 218; b) 189; c) 274
d) 44,5; e) 25,25; f) 41,3125
Câu 29: Đổi các số sau từ hệ nhị phân sang hệ thập phân:
a)1111 1100; b) 1110 0110 c) 1011 1011; d) 1000 1001
Câu 30: Đổi các số sau từ hệ thập phân sang hệ thập lục:
a) 268; b) 129; c) 245
III. MỞ RỘNG KIẾN THỨC CHO ĐỘI TUYỂN HỌC SINH GIỎI Ở
TRƯỜNG.
Các em lớp trong đội tuyển học sinh giỏi của trường đã được làm quen với
lập trình Pascal. Trong chuyên đề này tôi cũng sẽ hướng dẫn các em một số chương
trình chuyển đổi giữa các hệ đếm
Nguyên tắc của phương pháp chuyển đổi từ hệ cơ số 10 sang hệ cơ số 2 là lấy
số cần chuyển đổi chia cho 2 (kết quả chỉ lấy phần nguyên), sau đó tiếp tục lấy kết
quả chia 2 (và cũng chỉ lấy phần nguyên), kết quả số nhị phân thu được là tập hợp
các số dư của các phép chia.
1./ Đổi hệ Thập phân sang hệ Nhị phân
Program Doi_thap_phan_ra_nhi_phan;
Var 14
Readln(He10);
N:=He10; He8:=' ';
Repeat
Y:=He10 Mod 8;
Str(Y, Tam);
He8:=Tam + He8; He10:= He10 Div 8;
Until He10 = 0;
Writeln;
Writeln('+So he 10 la : ',N);
Writeln('+Doi sang he 8 la: ',He8);
Writeln;
Writeln(' Bam phim de ket thuc');
Readln
End.
3./ Đổi hệ Thập phân ra hệ Thập lục phân
Program Doi_thap_phan_ra_thap_luc;
Var
He10,N,Y:Word;
He16,Tam:String;
Begin
Writeln('DOI SO TU HE THAP PHAN SANG HE THAP LUC PHAN');
Writeln;
Write('-Nhap so nguyen he thap phan: ');
Readln(He10);
N:=He10; He16:=' ';
Repeat
Y:=He10 Mod 16;
If Y < 10 Then
Str(Y, Tam)
Else 16
Until He10 = 0; Writeln;
Writeln('+So he 10 la : ',N);
Writeln('+Doi sang he: ',HeN:2,' la: ',He); Writeln;
Writeln(' Bam phim de ket thuc');
Readln
End.
Bài toán ứng dụng: Số hexa (năm 2011-2012)
Trong toán học, lâu nay Bờm chỉ biết đến số thập phân. Hôm nay, tình cờ
Bờm đọc được tài liệu nói về số hexa. Số hexa là số được tạo thành bởi các chữ số
(0 →9) và các chữcái (A →F). Muốn chuyển đổi một số nguyên K (K ≥ 0) từ hệ
thập phân sang hệ hexa Bờm làm như sau: Bờm lấy số K chia cho 16 được thương
là P, rồi lấy thương P chia cho 16. Cứ lặp lại như vậy cho đến khi nào thương bằng
0 thì dừng, sau đó viết liên tiếp phần dư từ dưới lên thì Bờm thu được số hexa:
Yêu cầu: Cho dãy số nguyên ở hệ thập phân. Hãy giúp Bờm chuyển dãy số
trên thành dãy số tương ứng ở hệ hexa.
Dữ liệu vào: Từ file BAI1.INP gồm:
- Dòng 1: Sốnguyên dương n (n ≤103).
- Dòng 2n+1: Mỗi dòng chứa một sốnguyên K (0 ≤ K ≤ 109).
Kết quả: Ghi ra file BAI1.OUT gồm: n dòng là n số hexa tương ứng.
Chương trình chuyển từ số hệ thập phân (10) sang hệ hexa(16)
uses crt;
var n,i,k:longint;
S:string;
f2,f1:text;
function chcs16(M:longint):string;
Var
du:longint;
He16,T:String;File đính kèm:
sang_kien_kinh_nghiem_chuyen_de_he_dem_trong_tin_hoc.docx
Sáng kiến kinh nghiệm Chuyên đề hệ đếm trong Tin học.pdf

