Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пз_6_Общие сведения о системах счисления.doc
Скачиваний:
1
Добавлен:
14.09.2019
Размер:
281.09 Кб
Скачать

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

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

Разряды 3 2 1 0 1

Число 1 0 1 1, 1(2) = 123 + 022 + 021 + 120 + 021 = 11,5(10).

Разряды 2 1 0 1

Число 2 7 6, 5(8) = 182 + 781 + 620 + 581 = 190,625(10).

Разряды 2 1 0

Число 1 F 3(16) = 1162 + 15161 +3160 = 499(10).

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

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

Схема алгоритма перевода целой части десятичного числа А в произвольную систему счисления с основанием р приведена на рис. 4.8. К расширенному понятию «алгоритм» мы обратимся в следующей теме курса, а пока дадим его определение с позиций теории множеств.

Алгоритмом называется двусортное множество

,

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

массовости (инвариантности относительно входных данных);

детерминированности (однозначности применения этих правил на каждом шагу);

результативности (получения после применения этих правил искомого результата);

элементарности (прозрачности) (отсутствия необходимости дальнейшего уточнения правил);

– бинарное отношение в множестве ( , , если после процедуры выполняется процедура .

Рис. 4.8. Алгоритм перевода целой части десятичных чисел

Пример. Переведём число 27 из десятичной системы в двоичную, восьмеричную и шестнадцатеричную системы:

Результат перевода: 27(10) = 11011(2) = 33(8) = 1B(16). ▲

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

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

Рис. 4.9. Алгоритм перевода дробной части десятичных чисел

Пример. Переведём с точностью до 3 знаков после запятой число 0,35 из десятичной системы в двоичную, восьмеричную и шестнадцатеричную системы:

Результат перевода: 0,35(10) = 0,010(2) = 0,263(8) = 0,599(16). ▲

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

Изображения целых чисел в восьмеричной и шестнадцатеричной системах счисления вместе с их двоичным и десятичными эквивалентами представлены в табл. 4.1.

Таблица 4.1

Количественные эквиваленты чисел в системах счисления

Основание системы счисления

Основание системы счисления

10

2

8

16

10

2

8

16

0

1

2

3

4

5

6

7

8

9

10

0

1

10

11

100

101

110

111

1000

1001

1010

0

1

2

3

4

5

6

7

10

11

12

0

1

2

3

4

5

6

7

8

9

А

11

12

13

14

15

16

17

18

19

26

31

1011

1100

1101

1110

1111

10000

10001

10010

10011

10100

11111

13

14

15

16

17

20

21

22

23

32

37

В

С

D

Е

F

10

11

12

13

1А

1F

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

537,1(8) = 101 011 111, 001(2); 1А3,F(16) = 1 1010 0011, 1111(2).

5 3 7 1 1 A 3 F

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

10101001,10111(2) = 010 101 001, 101 110(2) = 251,56(8);

2 5 1 , 5 6

10101001,10111(2) = 1010 1001, 1011 1000(2) = А9,В8(16).

А 9 , В 8