Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Гл.2 Сх..docx
Скачиваний:
19
Добавлен:
12.11.2019
Размер:
291.62 Кб
Скачать
      1. Преобразования чисел, удобных для уст­ных расчетов

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

Рассмотрим примеры перевода чисел с использованием вышеописан­ного алгоритма.

Примеры.

  1. Перевести число 65(10) в двоичную СС: 65(10) = 64 +1 = 26 + 20=1000001(2).

Напомним, что 26 = 64, а 20 = 1 (см. табл.1.3)

27 26 25 24 23 22 21 20 разряды переводимого числа

0

1

0

0

0

0

0

1

128 64 32 16 8 4 2 1 степени числа 2

  1. + 64 + 0 + 0 + 0 + 0 + 0 + 1 = 65 результат перевода

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

Если необходимо перевести число из двоичной системы счисления в систему счисления, основанием которой является степень двойки (23 –восьмеричная, 24 –шестнадцатеричная), достаточно объединить цифры двоичного числа в группы по столько цифр, каков показатель степени, и использовать приведенный ниже алгоритм.

  • Перевод двоичного числа в восьмеричное. Алгоритм перевода прост. Двоичное число разбивается на триады (23), каждая триада соответствует восьмеричному числу.

Пример:

А1 = 110011, 1000102 = 110 011, 100 0102 = 63,428

6 3 4 2

А2 =1111010101,112 = 001 111 010 101, 110 = 1725,68

  • Перевод двоичного числа в шестнадцатеричное. Алгоритм перевода прост. Двоичное число разбивается на тетрады (24), каждая тетрада соответствует шестнадцатеричному числу.

Пример:

А1 = 110011, 1000102 = 0011 0011, 1000 10002 = 33,8816

3 3 8 8

А2 = 1111010101,11 = 0011 1101 0101, 1100 = 3D5,C16

  • Перевод восьмеричного числа в двоичное. Алгоритм перевода прост. Каждую цифру восьмеричного числа записываем в двоичном коде триадами.

Пример:

А = 305,428 = 011 000 101,100 0102

3 0 5 4 2

  • Перевод шестнадцатеричного числа в двоичное. Алгоритм перевода прост. Каждую цифру шестнадцатеричного числа записываем в двоичном коде тетрадами.

Пример:

А = 7АВ,EF16 =0111 1010 1011,1110 11112

7 А В Е F

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

Перевод в десятичную СС

Перевод в десятичную СС можно выпол­нить с помощью описанного ранее алгоритма замещения (2.3).

Примеры.

  1. Перевести в десятичную СС число 0,1101(2):

2-1 2-2 2-3 2-4 разряды переводимого числа

0

1

1

0

1


0,5 0,25 0,125 0,0625 отрицательные степени числа 2

0,1101(2) = + + 0 + = 0,5 + 0,25 + 0 + 0,0625 = 0,8125(10)

  1. Перевести в десятичную СС число 0,71(16) :

16-1 16-2 16-3 16-4 разряды переводимого числа

0

7

1

0

0


0,71(16) = + = 0.4375 + 0.0039062 = 0.4414062(10) ≈0.44(10)

Шестнадцатеричные дроби представляются в виде выражения: А = + + … +

0,6А716 = + + = 0.375 + 0.039… + 0.002… = 0.416(10) (с точностью до 3 знаков)

  • Перевод десятичных дробей в другие СС

Рассмотрим способы перевода десятичных дробей в другую СС. Пусть в десятичной системе счисления задана дробь А и ее нужно переве­сти в СС с основанием р.

Алгоритм перевода десятичных дробей в другую систему счисления можно описать в виде следующей последовательности шагов:

  1. умножить исходную дробь на основание р в исходной удобной си­стеме счисления, причем перемножению подвергается только дробная часть;

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

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

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

Рассмотрим примеры перевода дробей из одной СС в другую с помо­щью вышеописанного алгоритма, а полученный алгоритм в исходную СС с помощью алгоритма замещения.

Примеры

  1. Перевести в двоичную СС дробь 0,3125(10) и провести проверку результата:

а) 0,3125

х 2

0 6250

х 2

1 2500

х 2

0 5000

х 2

1 0000 Итак, 0,3125(10) =0,0101(2) с точностью 2-4

б) Перевести в десятичную СС двоичную дробь 0,0101(2):

0,0101 (2) = 0 • 2-1 + 1 • 2-2 +0 • 2-3 + 1 • 2-4 = ( + = ) = 0,3125(10).

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

В данном примере число произведений 4 поэтому точность 2-4.

  1. Перевести в двоичную СС дробь 0,12(10)

а) 0, 12 Алгоритм тот же, умножение дробной части на основание

0 24 двоичной системы (р =2). 12х2 =24, 24х2=48 и т.д.

0 48

0 96

1 92

1 84

1 68

  1. 36 Итак, 0,12(10) = 0,0001111…(2) с точностью 2-7

В данном примере число произведений 7 поэтому точность 2-7, при необходимости точность можно повысить, увеличив число последовательных произведений.

б) Перевести в десятичную СС дробь 0,0001111…(2)

0,0001111(2) = 0 • 2-1 +0 •2-2 +0 •2-3 + 1•2-4 + 1 • 2-5 + 1 • 2-6 + 1 • 2-7 =

= + + + = 0.1172(10) ~ 0,12

В вычислениях двоичных дробей может пригодиться табл. 2.3.