Топоркова О.М. Информатика - файл n1.doc

приобрести
Топоркова О.М. Информатика
скачать (1710.5 kb.)
Доступные файлы (1):
n1.doc1711kb.26.08.2012 21:38скачать
Победи орков

Доступно в Google Play

n1.doc

1   2   3   4   5   6   7   8   9   ...   30

3.3. Системы счисления



Для удобства последующего преобразования дискретный сигнал подвергается кодированию. Большинство кодов основано на системах счисления, причем использующих позиционный принцип образования числа, при котором значение каждой цифры зависит от ее положения в числе.

П
римером позиционной формы записи чисел является та, которой мы пользуемся (так называемая арабская форма чисел). Так, в числах 123 и 321 значения цифры 3, например, определяются ее положением в числе: в первом случае она обозначает три единицы (т.е. просто три), а во втором – три сотни (т.е. триста).

Т
(3.3)
огда полное число получается по формуле:

где l – количество разрядов числа,

i – порядковый номер разряда,

m – основание системы счисления,

ai – множитель, принимающий любые целочисленные значения от 0 до m-1, и соответствующий цифре в i-й позиции числа.

Например, для десятичного (m = 10) числа 345 его полное значение рассчитывается по формуле:

3*102 + 4*101 + 5*100 = 345.

Римские числа являются примером полупозиционной системы образования числа: так, в числах IX и XI знак I обозначает в обоих случаях единицу (признак непозиционной системы), но будучи расположенным слева от знака X (обозначающего десять), вычитается из десяти, а при расположении справа – прибавляется к десяти. В первом случае полное значение числа равно 9, во втором – 11.

В современной информатике используются в основном три системы счисления (все – позиционные): двоичная, шестнадцатеричная и десятичная.

Двоичная система счисления используется для кодирования дискретного сигнала, потребителем которого является вычислительная техника. Такое положение дел сложилось исторически, поскольку двоичный сигнал проще представлять на аппаратном уровне. В этой системе счисления для представления числа применяются два знака – 0 и 1.

Шестнадцатеричная система счисления используется для кодирования дискретного сигнала, потребителем которого является хорошо подготовленный пользователь – специалист в области информатики. В такой форме представляется содержимое любого файла, затребованное через интегрированные оболочки операционной системы, например, средствами Norton Commander в случае MS DOS. Используемые знаки для представления числа – десятичные цифры от 0 до 9 и буквы латинского алфавита – A, B, C, D, E, F.

Десятичная система счисления используется для кодирования дискретного сигнала, потребителем которого является так называемый конечный пользователь – неспециалист в области информатики (очевидно, что и любой человек может выступать в роли такого потребителя). Используемые знаки для представления числа – цифры от 0 до 9.

Соответствие между первыми несколькими натуральными числами всех трех систем счисления представлено в табл. 3.1.

Таблица 3.1

Десятичная

система

Двоичная

система

Шестнадцатеричная

система

0

0

0

1

1

1

2

10

2

3

11

3

4

100

4

5

101

5

6

110

6

7

111

7

8

1000

8

9

1001

9

10

1010

A

11

1011

B

12

1100

C

13

1101

D

14

1110

E

15

1111

F

16

10000

10


Для различения систем счисления, в которых представлены числа, в обозначение двоичных и шестнадцатеричных чисел вводят дополнительные реквизиты:

Для перевода чисел из одной системы счисления в другую существуют определенные правила.

3.3.1. Правила перевода чисел из одной системы счисления в другую


Правила перевода различаются в зависимости от формата числа – целое или правильная дробь. Для вещественных чисел используется комбинация правил перевода для целого числа и правильной дроби.

3.3.1.1. Правила перевода целых чисел


Результатом является целое число.

  1. Из десятичной системы счисления – в двоичную и шестнадцатеричную:

а) исходное целое число делится на основание системы счисления, в которую переводится (2 или 16); получается частное и остаток;

б) если полученное частное не делится на основание системы счисления так, чтобы образовалась целая часть, отличная от нуля, процесс умножения прекращается, переходят к шагу в). Иначе над частным выполняют действия, описанные в шаге а);

в) все полученные остатки и последнее частное преобразуются в соответствии с табл 3.1 в цифры той системы счисления, в которую выполняется перевод;

г) формируется результирующее число: его старший разряд – полученное последнее частное, каждый последующий младший разряд образуется из полученных остатков от деления, начиная с последнего и кончая первым. Таким образом, младший разряд полученного числа – первый остаток от деления, а старший – последнее частное.

Пример 3.1. Выполнить перевод числа 19 в двоичную систему счисления:

_19 2

  1. _9 2

1 8 _4 2

1 4 _2 2

0 2 1

0 последнее частное от деления (последующее деление 1 на 2 не дает отличного от нуля частного). Это старший разряд результирующего двоичного числа.

1 0 0 1 1 – результирующее число.

Таким образом, 19 = 100112.

Пример 3.2. Выполнить перевод числа 19 в шестнадцатеричную систему счисления:

_19 16

16 1

3
1 3 – результирующее число.

Таким образом, 19 = 1316.

Пример 3.3. Выполнить перевод числа 123 в шестнадцатеричную систему счисления:

_123 16

112 7

11




7 В – результирующее число.

Таким образом, 123 = 7В16.

2. Из двоичной и шестнадцатеричной систем счисления – в десятичную. В этом случае рассчитывается полное значение числа по формуле (3.3).

Пример 3.4. Выполнить перевод числа 1316 в десятичную систему счисления. Имеем:

1316 = 1*161 + 3*160 = 16 + 3 = 19.

Таким образом, 1316 = 19.

Пример 3.5. Выполнить перевод числа 100112 в десятичную систему счисления. Имеем:

100112 = 1*24 + 0*23 + 0*22 + 1*21 + 1*20 = 16+0+0+2+1 = 19.

Таким образом, 100112 = 19.

3. Из двоичной системы счисления в шестнадцатеричную:

а) исходное число разбивается на тетрады (т.е. 4 цифры), начиная с младших разрядов. Если количество цифр исходного двоичного числа не кратно 4, оно дополняется слева незначащими нулями до достижения кратности 4;

б) каждая тетрада заменятся соответствующей шестнадцатеричной цифрой в соответствии с табл. 3.1.

Пример 3.6. Выполнить перевод числа 100112 в шестнадцатеричную систему счисления.

Поскольку в исходном двоичном числе количество цифр не кратно 4, дополняем его слева незначащими нулями до достижения кратности 4 числа цифр. Имеем:

100112 = 000100112

первая тетрада – младшая цифра числа

вторая тетрада – старшая цифра числа

В соответствии с табл. 3.1 00112 = 112 = 316 и 00012 = 12 = 116. Тогда 100112 = 1316.

4. Из шестнадцатеричной системы счисления в двоичную:

а) каждая цифра исходного числа заменяется тетрадой двоичных цифр в соответствии с табл. 3.1. Если в таблице двоичное число имеет менее 4 цифр, оно дополняется слева незначащими нулями до тетрады;

б) незначащие нули в результирующем числе отбрасываются.

Пример 3.7. Выполнить перевод числа 1316 в двоичную систему счисления.

По табл. 3.1. имеем: 116 = 12 и после дополнения незначащими нулями 12 = 00012; 316 = 112 и после дополнения незначащими нулями 112 = 00112. Тогда 1316 = 000100112. После удаления незначащих нулей имеем 1316 = 100112.

3.3.1.2. Правила перевода правильных дробей


Результатом является всегда правильная дробь.

  1. Из десятичной системы счисления – в двоичную и шестнадцатеричную:

а) исходная дробь умножается на основание системы счисления, в которую переводится (2 или 16);

б) в полученном произведении целая часть преобразуется в соответствии с табл. 3.1 в цифру нужной системы счисления и отбрасывается – она является старшей цифрой получаемой дроби;

в) оставшаяся дробная часть вновь умножается на нужное основание системы счисления с последующей обработкой полученного произведения в соответствии с шагами а) и б).

г) процедура умножения продолжается до тех пор, пока ни будет получен нулевой результат в дробной части произведения или ни будет достигнуто требуемое количество цифр в результате;

д) формируется результат: последовательно отброшенные в шаге б) цифры составляют дробную часть результата, причем в порядке уменьшения старшинства.

Пример 3.8. Выполнить перевод числа 0,847 в двоичную систему счисления. Перевод выполнить до четырех значащих цифр после запятой.

Имеем:

*0,847

2

1,694 *0,694

2

1,388 *0,388

2

0,776 *0,776

2

1,552 и т.д.
0,1101 – результирующее число.
В данном примере процедура перевода прервана на четвертом шаге, поскольку получено требуемое число разрядов результата. Очевидно, это привело к потере ряда цифр.

Таким образом, 0,847 = 0,11012.

Пример 3.9. Выполнить перевод числа 0,847 в шестнадцатеричную систему счисления. Перевод выполнить до трех значащих цифр.

*0,847

16

13,552 *0,552

16

D 8,832 *0,832

16

  1. 13,312 и т.д.

D
0,D8D – результирующее число.

В данном примере также процедура перевода прервана.

Таким образом, 0,847 = 0,D8D16.

2. Из двоичной и шестнадцатеричной систем счисления – в десятичную. В этом случае рассчитывается полное значение числа по формуле (3.3), причем коэффициенты ai принимают десятичное значение в соответствии с табл. 3.1.

Пример 3.10. Выполнить перевод из двоичной системы счисления в десятичную числа 0,11012. Имеем:

0,11012 = 1*2-1 + 1*2-2 + 0*2-3 +1*2-4 = 0,5 + 0,25 + 0 + 0,0625 = 0,8125.

Расхождение полученного результата с исходным для получения двоичной дроби числом (см. пример 3.8) вызвано тем, что процедура перевода в двоичную дробь была прервана.

Таким образом, 0,11012 = 0,8125.

Пример 3.11. Выполнить перевод из шестнадцатеричной системы счисления в десятичную числа 0,D8D16. Имеем:

0,D8D16 = 13*16-1 + 8*16-2 + 13*16-3 = 13*0,0625 + 8*0,003906 + 13* 0,000244 = 0,84692.

Расхождение полученного результата с исходным для получения двоичной дроби числом (см. пример 3.9) вызвано тем, что процедура перевода в шестнадцатеричную дробь была прервана.

Таким образом, 0,D8D16 = 0,84692.

3. Из двоичной системы счисления в шестнадцатеричную:

а) исходная дробь делится на тетрады, начиная с позиции десятичной точки вправо. Если количество цифр дробной части исходного двоичного числа не кратно 4, оно дополняется справа незначащими нулями до достижения кратности 4;

б) каждая тетрада заменяется шестнадцатеричной цифрой в соответствии с табл. 3.1.

Пример 3.12. Выполнить перевод из двоичной системы счисления в шестнадцатеричную числа 0,11012. Имеем:

0,11012 = 0,11012

первая (и единственная) тетрада

В соответствии с табл. 3.1 11012 = D16. Тогда имеем 0,11012 = 0,D16.

Пример 3.13. Выполнить перевод из двоичной системы счисления в шестнадцатеричную числа 0,00101012.

Поскольку количество цифр дробной части не кратно 4, добавим справа незначащий ноль:

0,00101012 = 0,001010102.

вторая тетрада

первая тетрада

В соответствии с табл. 3.1 00102 = 102 = 216 и 10102 = A16. Тогда имеем 0,00101012 = 0,2A16.

4. Из шестнадцатеричной системы счисления в двоичную:

а) каждая цифра исходной дроби заменяется тетрадой двоичных цифр в соответствии с табл. 3.1;

б) незначащие нули отбрасываются.

Пример 3.14. Выполнить перевод из шестнадцатеричной системы счисления в двоичную числа 0,2А16.

По таблице 3.1 имеем 216 = 00102 и А16 = 10102.

Тогда 0,2А16 = 0,001010102.

Отбросим в результате незначащий ноль и получим окончательный результат: 0,2А16 = 0,00101012.

3.3.1.3. Правило перевода дробных чисел


Отдельно переводится целая часть числа, отдельно – дробная. Результаты складываются.

Пример 3.15. Выполнить перевод из десятичной системы счисления в шестнадцатеричную числа 19,847. Перевод выполнять до трех значащих цифр после запятой.

Представим исходное число как сумму целого числа и правильной дроби:

19,847 = 19 + 0,847.

Как следует из примера 3.2, 19 = 1316; а в соответствии с примером 3.9 0,847 = 0,D8D16.

Тогда имеем:

19 + 0,847 = 1316 + 0,D8D16 = 13,D8D16.

Таким образом, 19,847 = 13,D8D16.

3.3.2. Правила выполнения простейших арифметических действий


Арифметические операции для двоичных и шестнадцатеричных чисел выполняются по тем же правилам, что и для десятичных чисел, которые хорошо знакомы читателю. Рассмотрим на примерах выполнение таких арифметических операций, как сложение, вычитание, умножение и деление для целых чисел.

3.3.2.1. Правила сложения


Пример 3.16. Сложить двоичные числа 11012 и 110112.

Запишем слагаемые в столбик и пронумеруем разряды, присвоив младшему разряду номер 1:

номера разрядов: 5 4 3 2 1

+ 1 1 0 12

1 1 0 1 12

Процесс образования результата по разрядам описан ниже:

а) разряд 1 формируется следующим образом: 12 + 12 = 102; 0 остается в разряде 1, 1 переносится во второй разряд;

б) разряд 2 формируется следующим образом: 02 + 12 + 12 = 102, где вторая 12 – единица переноса; 0 остается в разряде 2, 1 переносится в третий разряд;

в) третий разряд формируется следующим образом: 12 + 02 + 12 = 102, где вторая 12 – единица переноса; 0 остается в разряде 3, 1 переносится в разряд 4;

г) четвертый разряд формируется следующим образом: 12 + 12 + 12 = 112, где третья 12 – единица переноса; 1 остается в разряде 4, 1 переносится в пятый разряд;

д) пятый разряд формируется следующим образом: 12 + 12 = 102; где вторая 12 – единица переноса; 0 остается в разряде 5, 1 переносится в шестой разряд.

Таким образом:

+ 1 1 0 12

1 1 0 1 12

10 1 0 0 02.

Проверим результат. Для этого определим полные значения слагаемых и результата:

11012 = 1*23 +1*22 + 0*21 + 1*20 = 8 + 4 + 1 = 13;

110112 = 1*24 + 1*23 + 0*22 + 1*21 + 1*20 = 16 + 8 + 2 + 1 = 27;

1010002 = 1*25 + 0*24 + 1*23 + 0*22 + 0*21 + 0*20 = 32 + 8 = 40.

Поскольку 13 + 27 = 40, двоичное сложение выполнено верно.

Пример 3.17. Сложить шестнадцатеричные числа 1С16 и 7В16.

Запишем слагаемые в столбик и пронумеруем разряды, присвоив младшему разряду номер 1:

номера разрядов: 2 1

+ 1 С16

7 В16

Процесс образования результата по разрядам описан ниже (он включает преобразование в процессе сложения каждой шестнадцатеричной цифры в десятичное число и обратные действия):

а) разряд 1 формируется следующим образом: С16 + В16 = 12 + 11 = 23 = 1716; 7 остается в разряде 1; 1 переносится в разряд 2;

б) разряд 2 формируется следующим образом: 116 + 716 + 116 = 916, где вторая 116 – единица переноса.

Таким образом:

+ 1 С16

7 В16

9 716.

Проверим результат. Для этого определим полные значения слагаемых и результата:

16 = 1*161 + 12*160 = 16 + 12 = 28;

16 = 7*161 + 11*160 = 112 + 11 = 123;

9716 = 9*161 + 7*160 = 144 + 7 = 151.

Поскольку 28 + 123 = 151, сложение выполнено верно.

3.3.2.2. Правила вычитания


Пример 3.18. Вычесть из двоичного числа 1012 двоичное число 112.

Запишем алгебраические слагаемые в столбик в порядке «уменьшаемое – вычитаемое» и пронумеруем разряды, присвоив младшему разряду номер 1:

номера разрядов: 3 2 1

- 1 0 12

1 12

Процесс образования результата по разрядам описан ниже:

а) разряд 1 формируется следующим образом: 12 – 12 = 02;

б) разряд 2 формируется следующим образом: поскольку 0 < 1 и непосредственное вычитание невозможно, занимаем для уменьшаемого единицу в старшем разряде 3. Тогда разряд 2 рассчитывается как 102 – 12 = 12;

в) третий разряд формируется следующим образом: поскольку единица была занята в предыдущем шаге, в разряде остался 0.
Таким образом:

- 1 0 12

1 12

1 02.

Проверим результат. Для этого определим полные значения слагаемых и результата. По табл. 3.1 имеем:

1012 = 5; 112 = 3; 102 = 2.

Поскольку 5 – 3 = 2, вычитание выполнено верно.

Пример 3.19. Вычесть из шестнадцатеричного числа 9716 шестнадцатеричное число 7В16.

Запишем алгебраические слагаемые в столбик в порядке «уменьшаемое – вычитаемое» и пронумеруем разряды, присвоив младшему разряду номер 1:

номера разрядов: 2 1

- 9 716

7 В16

Процесс образования результата по разрядам описан ниже:

а) разряд 1 формируется следующим образом: поскольку 716 < В16 и непосредственное вычитание невозможно, занимаем для уменьшаемого единицу в старшем разряде 2. Тогда 1716 – В16 = 23 – 11 = 12 = С16;

б) разряд 2 формируется следующим образом: поскольку единица была занята в предыдущем шаге, разряд 2 уменьшаемого стал равным 816. Тогда разряд 2 рассчитывается как 816 – 716 = 116.

Таким образом:

- 9 716

7 В16

1 С16.

Для проверки результата используем данные из примера 3.17.

Таким образом, вычитание выполнено верно.

3.3.2.3. Правила умножения


Пример 3.20. Умножить двоичное число 1012 на двоичное число 112.

Запишем множители в столбик и пронумеруем разряды, присвоив младшему разряду номер 1:

номера разрядов: 3 2 1

* 1 0 12

1 12

Процесс образования результата по шагам умножения множимого на каждый разряд множителя с последующим сложением показан ниже:

а) умножение множимого на разряд 1 множителя дает результат: 1012 * 12 = 1012;

б) умножение множимого на разряд 2 множителя дает результат: 1012 * 102 = 10102. Здесь значение разряда 2 множителя сформировано по принципам формирования значения числа в позиционных системах счисления;

в) для получения окончательного результата складываем результаты предыдущих шагов: 1012 + 10102 = 11112.

Для проверки результата найдем полное значение сомножителей и произведения (см. табл. 3.1):

1012 = 5; 112 = 3; 11112 = 15.

Поскольку 5 * 3 = 15, умножение выполнено верно: 1012 * 112 = 11112.

Пример 3.21. Умножить шестнадцатеричное число 1С16 на шестнадцатеричное число 7В16.

Запишем множители в столбик и пронумеруем разряды, присвоив младшему разряду номер 1:

номера разрядов: 2 1

* 1 С16

7 В16

Процесс образования результата по шагам умножения множимого на каждый разряд множителя с последующим сложением показан ниже (в процессе умножения выполняем перевод шестнадцатеричных чисел в десятичные и обратно):

а) умножение множимого на разряд 1 множителя дает результат: 1С16 * В16 = 28 * 11 = 308 = 13416;

б) умножение множимого на разряд 2 множителя дает результат: 1С16 * 706 = 28 * 112 = 3136 = С4016. Здесь значение разряда 2 множителя сформировано по принципам формирования значения числа в позиционных системах счисления;

в) для получения окончательного результата складываем результаты предыдущих шагов: 13416 + С4016 = D7416.

Для проверки результата найдем полное значение сомножителей и произведения, воспользовавшись результатами примера 3.17 и правилами формирования полного значения числа:

16 = 28; 7В16 = 123;

D7416 = 13*162 + 7*161 + 4*160 = 3444.

Поскольку 28 * 123 = 3444, умножение выполнено верно: 1С16 * 7В16 = D7416.

3.3.2.4. Правила деления


Рассмотрим правила деления только для двоичных чисел, поскольку деление шестнадцатеричных чисел проще выполнять, переведя их предварительно в десятичную систему счисления.

Пример 3.22. Разделить двоичное число 11112 на двоичное число 112.

Решение задачи представим схемой:

-11112 112

112 1012

-0112

112

02

Для проверки правильности результата воспользуемся данными из примера 3.20. Они показывают, что деление выполнено верно: 11112 / 112 = 1012.
1   2   3   4   5   6   7   8   9   ...   30


3.3. Системы счисления
Учебный материал
© nashaucheba.ru
При копировании укажите ссылку.
обратиться к администрации