Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава_1_А5.docx
Скачиваний:
56
Добавлен:
14.09.2019
Размер:
438.48 Кб
Скачать

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

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

Таблица 1.2

L=8

R=2

0

1

2

3

0

1

10

11

4

5

6

7

100

101

110

111

Триады

[70354]8→ [111 000 011 101 100]2

Обратный перевод чисел из системы счисления с основанием L=2 в систему с основанием R=8 связан с формированием в исходном коде триад начиная с младшего разряда; если последние символы кода не составляют триаду, то её формируют в соответствии с таблицей 1.2.

[010 011 010 011 101 001]2→ [232351]8

1.5.3 Использование восьмеричной системы счисления для повышения быстродействия алгоритма преобразовании чисел.

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

N=10 N=8 N=2

[999]10→ [1747]8→ [1 111 100 111]2

L=10 R=8 10 двоичных символов

Для L<R алгоритм перевода заключается в формировании по исходной записи числа в старой системе его значения, в котором веса символов вычисляются, как степени основания новой системы, записанной в старой.

L=2, R=10; r=2

[101011]2→ [ ] 10

запись

1*20 + 1*21 + 0*22 + 1*23 + 0*24 + 1*25= 1+2+8+32= 43

Значение

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

[43]10→ [53]8→ [101011]2

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

Для L > R алгоритм перевода дробей имеет вид:

A= 0, a1 a2 …… aj …… am

запись дроби

m

A= a1*N-1+a2*N-2+aj*N-j+ …… +am*N-m= ∑ aj*N-j (7)

J=1

значение дроби

Пусть запись дроби в системе с основанием L имеет вид:

A=al1 al2 …… alj …… alm

Для получения значения этой дроби в качестве веса символов используем основание новой системы R , записанное в старой r:

A=al1*r-1+al2*r-2+ ……. +alj*r-j+ …… +alm*r-m… (1.9) (8)

Каждый цикл алгоритма включает следующие шаги:

Шаг 1: обе части выражения (1.9) умножим на основание новой системы, записанной в старой:

A*r=al1+al2*r-1+al3*r-2+ …… +alj*r-(j-1) +……+alm*r-(m-1) (1.10)

A1

Шаг 2: выделим целую часть полученного произведения, обозначив его дробную часть через A1.

al1=A*r-A1 (1.11)

Повторим операции (1.9), (1.10), (1.11) для выделения очередной целой части промежуточного произведения.

A1= al2*r-1+al3*r-2+ …… +alj*r-(j-1) +……+alm*r-(m-1)

A1*r=al2+al3*r-1+ …… +alj*r-(j-r) + …… +alm*r-(m-2)

al2=A1*r-A2 A2

(1.12)

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

alj=Aj-1*r-Aj

i=1, 2, 3, ………

Пример: L=10 , R=2; r=2

[0, 25]10 = [0,001]2

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]