Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСНОВЫ ИНФОРМАТИКИ.pdf
Скачиваний:
100
Добавлен:
09.03.2016
Размер:
704.66 Кб
Скачать

1 × 0 = 0

1 × 1 = 1

Например, умножение 510 × 310 = 1510: 101

× 11 101

+101

1111

Правила деления двоичных чисел

Деление двоичных чисел производится по правилам умножения и вычитания. Например,

деление 610 : 310 = 210: 110 : 11 = 10

11011

-11 10

00

Операция сдвига по разрядной сетке

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

1)0000112 = 310 влево 0011002 = 1210, т.е. 3 × 4(22) = 1210

2)0010002 = 810 вправо

0000102 = 210, т.е. целая часть от деления – 8 : 4(22) = 210

3)0010012 = 910 вправо

0000102 = 210, т.е. целая часть от деления – 9 : 4(22) = 210

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

Для перевода чисел из одной позиционной системы счисления в другую применяются определенные правила, зная которые можно легко разработать алгоритм перевода числа из любой позиционной системы счисления (q ≥ 2) в другую с последующей реализацией его на каком-либо языке программирования.

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

равенство аддитивной системы счисления.

Например: перевести число 30,610 в троичную систему счисления с точностью до четвертого знака после запятой.

Для целой части числа:

30

3

 

 

 

 

 

−30

 

 

3

 

 

 

10

 

 

 

0

− 9

 

 

 

 

3

 

3

 

 

1

 

−3

 

 

1

 

 

 

 

 

 

0

 

 

 

12

3010 = 10103

Для дробной части:

0,6

х3

1,8

х3

2,4

х3

1,2

х3

0,6

х3

0,610 = 0,1210…3

30,610 = 1010,1210…3

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

1010,12103 = 1·33 + 1·31 + 1·3-1 + 2·3-2 + 1·3-3 ≈ ≈ 27 + 3 + 0.3333 + 0.2222 = 30,555510

Для заданной точности погрешность составляет 0,044510.

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

Основания восьмеричной и шестнадцатеричной систем счисления выражаются целой степенью двойки: 8 = 23, 16 = 24, поэтому правила перевода чисел из двоичной системы в восьмеричную, шестнадцатеричную и обратно достаточно просты: требуются три бита для представления восьмеричного числа в двоичном коде и четыре бита для представления шестнадцатерич-ного числа в двоичном коде.

Таблица перевода восьмеричных чисел в двоичные

Восьмеричное число

Двоичное число

0

000

1

001

2

010

3

011

4

100

5

101

6

110

7

111

Таблица перевода шестнадцатеричных чисел в двоичные

Шестнадцатеричное число

Двоичное число

0

0000

1

0001

2

0010

3

0011

4

0100

5

0101

6

0110

7

0111

8

1000

9

1001

A (10)

1010

B (11)

1011

C (12)

1100

D (13)

1101

E (14)

1110

F (15)

1111

13

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

триадой:

762,358 = 111 110 010, 011 1012.

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

лами – тетрадами:

A7B,C716 = 1010 0111 1011, 1100 01112.

Перевод чисел из двоичной системы счисления в восьме-ричную или шестнадцатеричную

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

001 111, 101 0102 = 17,528,

0101 1100, 1011 0112 = 5C,B616.

Подобным образом можно представить перевод в двоичную систему счисления, например, из четверичной системы и обратно, так как основание четверичной системы тоже является целой степенью двойки: 4 = 22. Тогда для представления четверичного числа в двоичном коде потребуются два бита:

Четверичное число

Двоичное число

0

00

1

01

2

10

3

11

Перевод десятичных чисел в двоичные

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

дробной части двоичного числа).

Например: перевести число 30,610 в двоичную систему счисления с точностью до четвертого знака после запятой.

Для целой части числа:

30

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

−30

 

 

 

 

 

 

2

 

 

 

 

 

 

 

15

 

 

 

 

 

0

−14

 

 

 

 

 

 

2

 

 

 

 

 

 

7

 

 

 

 

 

 

 

 

 

1

 

−6

 

 

 

 

2

 

 

 

3

 

 

 

 

 

 

1

 

 

−2

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

Запись цифр целой части числа осуществляется справа налево: 3010 = 111102. Для дробной части числа:

0,6

×2

1,2

×2

0,4

×2

0,8

×2

1,6

×2 …

Запись цифр дробной части числа осуществляется сверху вниз: 0,610 = 0,1001…2

14

30,610 = 11110,1001…2

Если при переводе дробной части получается периодическая дробь, то производится округление, исходя из предварительно заданной точности вычисления. В данном примере дробь определена с точностью до четвертого знака после запятой.

Используя равенство, которому удовлетворяет любая аддитив-ная система счисления, можно проверить правильность перевода числа и определить погрешность при переводе его дробной части для заданной точности:

11110,10012 = 1·24 + 1·23 + 1·22 + 1·21 + 0·20 + 1·2-1 + 0·2-2 + 0·2-3 + +1·2-4 = 16 + 8 + 4 + 2 + 0.5 + 0.0625 = 30,562510.

Для заданной точности погрешность = 0,037510.

Перевод десятичных чисел в восьмеричные и шестнадцатеричные

При переводе десятичных чисел в восьмеричные или шестнад-цатеричные, в соответствии с

общими правилами перевода чисел, целая часть числа последовательно делится, соответственно, на 8 или 16, а дробная – умножается, соответственно, на 8 или 16.

Например: перевести число 555,2110 в восьмеричную систему с точностью до четвертого знака после запятой.

Для целой части числа:

555 : 8 = 69 : 8 = 8 : 8 = 1 – старший разряд

3

5

0 (остатки от последовательного деления)

Для дробной части числа:

0,21 × 8 = 0,68 × 8 = 0,44 × 8 = 0,52 × 8 = 0,16 × 8 = …

0, 1 5 3 4 – младший разряд

555,2110 = 1053,1534…8

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

1053,15348 = 1·83 + 0·82 + 5·81 + 3·80 + 1·8-1 + 5·8-2 + 3·8-3 + 4·8-4 = =512 + 40 + 3 + 0,125 + 0,078125 + 0, 005859375 = 555,20898437510.

Для заданной точности погрешность равна 0,00101562510.

Перевод двоичных чисел в десятичные

При переводе двоичного числа в десятичное, в соответствии с общими правилами перевода чи-

сел, целая часть числа делится на основание десятичной системы счисления в двоичной записи (10102), а дробная –умножается последовательно на это число.

Например: перевести число 111101,012 в десятичную систему. Для целой части числа:

111101 1010 −1010 110

1010 −1010

01

1111012 = 6110

Для дробной части числа:

0,0100

×1010

+ 0000 0 100 00 00 010 0 10,1000

х1010

+0000

15