Понятие числа – фундаментальное понятие, как математики, так и информатики.
Под числом мы будем понимать его величину, а не его символьную запись.
Символы, при помощи которых записывается число, называются цифрами.
Под системой счисления принято называть совокупность приемов обозначения (записи) чисел.
Позиционной системой счисления называется система счисления, в которой значение каждой цифры в изображении числа зависит от ее положения в ряду других цифр, изображающих число.
Базис системы счисления — это последовательность ключевых чисел, каждое из которых задает значение цифры в ее позиции или «вес» каждого разряда.
Выбирая за основание системы счисления любое натуральное число k, то есть, считая, что k единиц любого разряда образует одну единицу соседнего более крупного разряда, придем к так называемой k-ной системе счисления.
Если k<10, то цифры от k до 9 становятся лишними. Если k>10, то для чисел от 10 до k-1 включительно надо придумать специальные значения цифр. Для 16-ричной системы счисления:
1010 — A16
1110 — B16
1210 — C16
1310 — D16
1410 — E16
1510 — F16
Базис двоичной системы счисления: 1, 2, 4, 8, 16, ..., 2n, ...
Базис восьмеричной системы счисления: 1, 8, 64, 512, ..., 8n, ...
Или в общем виде: q0=1, q1=q, q2=q2, q3=q3, ..., qn=qn, ..., где qN и q1. Число q называют основанием системы счисления.
Каждое число в любой из таких систем может быть записано в цифровой и многочленной форме:
Цифровая форма: Aq=(anan-1an-2...a2a1a0)q, где ai – цифра в диапазоне от 0 до q-1.
Многочленная форма: Aq=anqn+an-1 qn-1+an-2qn-2+...+a2 q2+a1q1+a0, где q – базис системы счисления.
Связь между системами счисления
Алгоритм 1. Для того чтобы исходное цело число Aq заменить равным ему целым числом Bp, необходимо число Aq разделить нацело по правилам q-арифметики на новое основание p. Полученный результат вновь разделить нацело на основание p и т.д. до тех пор, пока частное не превратиться в ноль. Цифрами искомого числа Bp являются остатки от деления, выписанные так, чтобы последний остаток являлся бы цифрой старшего разряда числа Bp.
Число p перед делением должно быть записано в системе с основанием q.
278108
|
278
|
8
|
|
|
24
|
34
|
8
|
|
38
|
32
|
4
|
|
32
|
2
|
|
27810 = 4268
|
6
|
|
|
27810 = 1000101102
|
27810 = 11616
|
Алгоритм 2. Для того чтобы исходное целое число Aq заменить равным ему целым числом Bp, достаточно цифру старшего разряда числа Aq умножить по правилам p-арифметики на старое основание q. К полученному произведению прибавить цифру следующего разряда числа Aq. Полученную сумму вновь умножить на q по правилам p-арифметики, вновь к полученному произведению прибавить цифру следующего (более младшего) разряда. Так поступают до тех пор, пока не будет прибавлена младшая цифра числа Aq. Полученное число и будет искомым числом Bp.
43916 = (4×16+3) ×16+9 = 108110
10111012 = (((((1×2+0) ×2+1) ×2+1) ×2+1) ×2+0) ×2+1 = 9310
6458 = (6×8+4) ×8+5 = 42110
Упражнение 1. Попробуйте сформулировать данный алгоритм (№2) перевода другими словами. Докажите правильность вашего варианта с помощью математического доказательства.
Упражнение 2. Реализуйте на Паскале алгоритм для перевода целых чисел из десятичной системы счисления в двоичную (восьмеричную, шестнадцатеричную, любую другую позиционную).
Упражнение 3. Реализация на Паскале алгоритм перевода целых чисел из двоичной (восьмеричной, шестнадцатеричной, любой) системы счисления в десятичную.
Расчетные примеры
№
|
Десятичная система счисления
|
Двоичная система счисления
|
Шестнадца-теричная
система
|
Восьмерич-ная система счисления
|
Другие системы
|
1.
|
214
|
= 11010110
|
= D6
|
= 326
|
|
2.
|
278
|
= 100010110
|
= 116
|
= 426
|
|
3.
|
263
|
= 100000111
|
= 107
|
= 407
|
|
4.
|
257
|
= 100000001
|
= 101
|
= 401
|
|
5.
|
333
|
= 101001101
|
= 14D
|
= 515
|
|
6.
|
307
|
= 100110011
|
= 133
|
= 463
|
|
7.
|
314
|
= 100111010
|
= 13A
|
= 472
|
|
8.
|
299
|
= 100101011
|
= 12B
|
= 453
|
|
9.
|
317
|
= 100111101
|
= 13D
|
= 475
|
|
10.
|
353
|
= 101100001
|
= 161
|
= 541
|
= 1110023
= 24035
|
11.
|
269
|
= 100001101
|
= 10D
|
= 415
|
|
12.
|
218
|
= 11011010
|
= DA
|
= 332
|
|
13.
|
377
|
= 101111001
|
= 179
|
= 571
|
|
14.
|
443
|
= 110111011
|
= 1BB
|
= 673
|
= 1211023
|
15.
|
391
|
= 110000111
|
= 187
|
= 607
|
|
16.
|
490
|
= 111101010
|
= 1EA
|
= 752
|
|
17.
|
241
|
= 11110001
|
= F1
|
= 361
|
|
18.
|
365
|
= 101101101
|
= 16D
|
= 555
|
|
19.
|
525
|
= 1000001101
|
= 20D
|
= 1015
|
|
20.
|
188
|
= 10111100
|
= BC
|
= 274
|
|
21.
|
292
|
= 100100100
|
= 124
|
= 444
|
|
22.
|
159
|
= 10011111
|
= 9F
|
= 237
|
|
Алгоритм 3. Для того чтобы исходную правильную дробь 0,Aq заменить равной ей правильной дробью 0,Bp, нужно 0,Aq умножить на новое основание p по правилам q-арифметики. Целую часть полученного произведения считать цифрой старшего разряда искомой дроби. Дробную часть полученного произведения вновь умножить на p, целую часть полученного результата считать следующей цифрой искомой дроби. Эти операции продолжать до тех пор, пока дробная часть не окажется равной нулю, либо не будет достигнута требуемая точность.
0,37510 = 0,0112
|
0,37510 = 0,38
|
0,37510 = 0,616
|
0,375×2 = 0,75
|
0,375×8 = 3,0
|
0,375×16 = 6,0
|
0,75×2 = 1,5
|
|
|
0,5×2 = 1,0
|
|
|
Алгоритм 4. Для того чтобы исходную правильную дробь 0,Aq заменить равной ей правильной дробью 0,Bp, нужно цифру младшего разряда дроби 0,Aq разделить на старое основание q по правилам p-арифметики. К полученному частному прибавить цифру следующего (более старшего) разряда и далее поступать также, как и с первой цифрой. Эти операции продолжать до тех пор, пока не будет прибавлена цифра старшего разряда исходной дроби. После этого полученную сумму разделить еще раз на q.
0,11012 = (((1:2+0):2+1):2+1):2 = 0,812510
0,458 = (5:8+4):8 = 0,57812510
0,F0316 = ((3:16+0):16+15):16 = 0,938232410
Упражнение 4. Попробуйте сформулировать данный алгоритм (№4) перевода другими словами. Докажите правильность вашего варианта с помощью математического доказательства.
Упражнение 5. Реализуйте на Паскале алгоритм для перевода правильных дробей из десятичной системы счисления в двоичную (восьмеричную, шестнадцатеричную, любую другую позиционную).
Упражнение 6. Реализация на Паскале алгоритм перевода правильных дробей из двоичной (восьмеричной, шестнадцатеричной, любой) системы счисления в десятичную.
Расчетные примеры
№
|
Десятичная система счисления
|
Двоичная система счисления
|
Шестнадцате-ричная
система
|
Восьмеричная система счисления
| -
|
397,25
|
= 110001101,01
|
= 18D,4
|
= 615,2
| -
|
205,7
|
= 11001101,1(0110)
|
= CD,B(3)
|
= 315,5(4631)
| -
|
184,8
|
= 10111000,(1100)
|
= B8,(C)
|
= 270,(6314)
| -
|
163,15
|
= 10100011,001(0011)
|
= A3,2(6)
|
= 243,1(1463)
| -
|
217,05
|
= 11011001,00(0011)
|
= D9,0(C)
|
= 331,0(3146)
| -
|
208,65
|
= 11010000,10(1001)
|
= D0,A(6)
|
= 320,5(1463)
| -
|
501,7
|
= 111110101,1(0110)
|
= 1F5,B(3)
|
= 765,5(4631)
| -
|
532,1
|
= 1000010100,0(0011)
|
= 214,1(9)
|
= 1024,0(6314)
| -
|
492,9
|
= 111101100,1(1100)
|
= 1EC,E(6)
|
= 754,7(1463)
| -
|
391,15
|
= 11000011,00(1001)
|
= 187,2(6)
|
= 607,1(1463)
| -
|
601,05
|
= 1001011001,00(0011)
|
= 259,0(C)
|
= 1131,0(3146)
| -
|
337,55
|
= 101010001,10(0011)
|
= 151,8(C)
|
= 521,4(3146)
| -
|
345,35
|
= 101011001,01010110
|
= 159,5(6)
|
= 531,25(4631)
| -
|
449,45
|
= 111000001,01(1100)
|
= 1C1,7(3)
|
= 701,3(4631)
| -
|
700,65
|
= 1010111100,1010(0110)
|
= 2BC,A(6)
|
= 1274,5(1463)
| -
|
999,75
|
= 1111100111,11
|
= 3E7,C
|
= 1747,6
| -
|
900,85
|
= 1110000100,11(0110)
|
= 384,D(9)
|
= 1604,6(6314)
| -
|
304,75
|
= 100110000,11
|
= 130,C
|
= 460,6
| -
|
473,6
|
= 111011001,(1001)
|
= 1D9,(9)
|
= 731,(4631)
| -
|
298,8
|
= 100101010,(1100)
|
= 12A,(C)
|
= 452,(6314)
| -
|
285,7
|
= 100011101,1(0110)
|
= 11D,B(3)
|
= 435,5(4631)
| -
|
402,5
|
= 110010010,1
|
= 192,8
|
= 622,4
| -
|
701,25
|
= 1010111101,01
|
= 2BD,4
|
= 1275,2
| -
|
613,4
|
= 1001100101,(0110)
|
= 265,(6)
|
= 1145,(3146)
| -
|
583,3
|
= 1001000111,0(1001)
|
= 247,4(C)
|
= 1107,2(3146)
| -
|
414,375
|
= 110011110,011
|
= 19E,6
|
= 636,3
| -
|
170,625
|
= 10101010,101
|
= AA,A
|
= 252,5
| -
|
119,75
|
= 1110111,11
|
= 77,C
|
= 167,6
| -
|
227,125
|
= 11100011,001
|
= E3,2
|
= 343,1
| -
|
93,3125
|
= 1011101,0101
|
= 5D,5
|
= 135,24
| -
|
143,8125
|
= 10001111,1101
|
= 8F,D
|
= 217,64
| -
|
1575,65625
|
= 11000100111,10101
|
= 627,A8
|
= 3047,52
| -
|
373,5
|
= 101110101,1
|
= 175,8
|
= 565,4
| -
|
161,546875
|
= 10100001,100011
|
= A1,8C
|
= 241,43
| -
|
249,75
|
= 11111001,11
|
= F9,C
|
= 371,6
| -
|
511,625
|
= 111111111,101
|
= 1FF,A
|
= 777,5
| -
|
117,265625
|
= 1110101,010001
|
= 75,42
|
= 165,21
| -
|
168,75
|
= 10101000,11
|
= A8,C
|
= 250,6
| -
|
1977,84375
|
= 11110111001,11011
|
= 7B9,D8
|
= 3671,66
| -
|
62,9375
|
= 111110,1111
|
= 3E,F
|
= 76,74
| -
|
124,5
|
= 1111100,1
|
= 7C,8
|
= 174,4
| -
|
266,25
|
= 100001010,01
|
= 10A,4
|
= 412,2
|
Достарыңызбен бөлісу: |