
- •Часть 1. Из истории вуза и кафедр эвм и сапр вс
- •1.1. Из истории вуза
- •1.2. Из истории кафедр эвм и сапр вс
- •Литература
- •Часть 2. История развития вычислительной техники
- •2.1. Первые счетные машины
- •2.1.1. Абак и счеты
- •2.1.2. Палочки Непера и логарифмическая линейка
- •2.1.3. Механические счетные машины
- •2.1.4. Аналитическая машина Беббиджа
- •2.1.5. Счетно-аналитические машины Холлерита
- •2.1.6. Релейные машины
- •2.2. Электронные вычислительные машины
- •2.2.1. Электронные лампы
- •2.2.2. Эвм первого поколения
- •2.2.3. Эвм второго поколения
- •2.2.4. Эвм третьего поколения
- •2.2.5. Эвм четвертого поколения
- •2.2.6. Эвм пятого поколения
- •2.2.7. Основные этапы развития программного обеспечения эвм
- •Литература к части 2
- •2.1. Громко н.И. Введение в страну эвм. – Минск: Высшая
- •Часть 3. Арифметические основы эвм
- •1.3Системы счисления
- •1.3.1Понятие системы счисления
- •1.3.2Непозиционные системы счисления
- •1.3.3Позиционные системы счисления
- •3.1.4.Двоично-десятичные системы счисления
- •1.3.4Системы счисления в остаточных классах
- •1.3.5Сравнение различных систем счисления с точки зрения их применения в эвм
- •3.2. Перевод чисел из одной системы счисления в другую
- •1.3.6Перевод чисел из одной естественной системы счисления в другую
- •3.2.1.1. Перевод по методу непосредственной замены в этом случае сводится к реализации соотношения: (3.9)
- •1.3.7Перевод чисел из системы счисления с натуральным основанием в двоично-десятичную систему и обратно
- •1.3.8Перевод чисел из смещенной системы счисления с натуральным основанием в ссок и обратно
- •Литература
- •Вопросы к части 3
- •Часть 4. Из истории криптографии
- •4.1. Криптография
- •3 Поворота (на 180), 16 белых кв-ов.
- •4.2. Тайнопись в России
- •4.3. Из истории второй мировой войны
- •4.4. Криптография и археология
- •Ответы к шифрованным сообщениям
- •Литература
- •Содержание
- •Часть 4. Из истории криптографии 110
3.2. Перевод чисел из одной системы счисления в другую
1.3.6Перевод чисел из одной естественной системы счисления в другую
Обозначим символом
S
основание исходной системы, а символом
S
-
основание системы, в которую число x
необходимо перевести. Предположим
вначале, что S
и S
являются натуральными, а x – целым.
3.2.1.1. Перевод по методу непосредственной замены в этом случае сводится к реализации соотношения: (3.9)
где
- код количества x в системе счисления
с основанием S ;
-
цифры системы с основанием
,i
=0,1,…,n;
( ) – количественный эквивалент цифры в нулевом разряде этой системы;
- цифры системы с
основанием
,
j=0,1,…,k.
Так, к примеру,
Как видим, при
такой замене необходимо помнить
представление всех компонент
в системе с основанием
и уметь выполнять в этой системе
арифметические действия. Следовательно,
этот метод удобен, когда
-
основание привычной для нас системы
счисления.
3.2.1.2. При табличном методе перевода предварительно составляется таблица вида табл. 3.12.
3.12
В нижней строке
ее фиксируется результат перевода,
процедура которого во многом напоминает
процедуру взвешивания. Эталонами веса
здесь являются числа, представленные
в исходной системе и находящиеся в
клетках таблицы. Первоначально выбирается
такое из этих чисел, которое равно
или
наиболее близко к нему. Тем самым
определяется номер старшего значащего
разряда k и цифра
кода
.
Далее находится разность
,
по которой на следующем шаге отыскивается
новая значащая цифра, и т. д.
Взвешивание прекращается на некотором шаге, если получаемая в конце его разность равна нулю. В оставшихся разрядах целой части , если таковые имеются, записываются нули.
Поясним рассмотренный
метод на примере перевода кода
в
двоичную систему счисления. Соответствующая
таблица будет иметь вид, в ней же приведен
и результат перевода:
Легко понять, что этот метод удобен, когда S - основание привычной для нас системы счисления. Число столбцов составляемой таблицы определяется максимальной разрядностью кода .
3.2.1.3. Для перевода целых чисел широко используется также метод деления, заключающийся в следующем. Запишем результат перевода в виде
.
Очевидно, что
(3.10)
Разделим левую и
правую часть (2.1.2) на
.
При этом
, (3.11)
а наименьший
положительный остаток будет равен
.
Другими словами, мы получаем в остатке
в результате этого деления цифру
в
-ичной записи. Легко видеть из (3.11), что
при делении
на
в остатке будет получена
-ичная запись цифры
и т.д. Это позволяет сформулировать
следующее правило перевода целых чисел
по методу деления:
- найти
;
- проверить не
равно ли частное
нулю; если нет, то вернуться к предыдущему
пункту, заменив
на
, и т.д.;
- при получении
частного, равного нулю, выписать все
полученные ранее остатки в порядке,
обратном порядку их получения, заменив
их цифрами
-ичной системы, если это необходимо.
Найденная запись есть
.
Пусть, к примеру,
.
Тогда
Следовательно,
.
Как видим, метод деления особенно удобен, когда исходная система счисления является привычной для человека.
Рассмотрим теперь
при неизменных прочих условиях задачу
перевода дробных чисел. Ясно, что о
точном переводе здесь уже говорить не
приходится, поскольку конечная
-ичная
дробь может не иметь конечного
-ичного
представления. Поэтому перевод, как
правило, осуществляется с некоторой
заранее заданной точностью
,
задаваемой обычно в виде некоторой
отрицательной степени
,
т.е.
=
,
где l – целое число.
При переводе дробных чисел, также как и при переводе целых чисел, можно воспользоваться методом непосредственной замены и табличным методом. При этом соотношение (3.9) принимает вид
а табл.3.12
трансформируется в табл.3.13. Здесь
и
- цифры
-ичной
и
-ичной
систем соответственно, i = -1, -2, … , -m; j =
-1, -2, …, -l. Все отмеченные выше достоинства
и недостатки этих методов справедливы
и в рассматриваемом случае.
3.13
3.2.1.4. Однако наиболее часто при переводе дробных чисел используют метод умножения. Запишем результат перевода в виде
Ясно, что
(3.12)
Умножим левую и
правую части (3.12) на
.
Получим
и дробную часть, равную
Вновь умножая
последнюю на
,
получим в качестве новой целой части
и т.д. Другими словами, в процессе
умножения дробных частей в качестве
целых частей получаются
-ичные
представления цифр
,
, … .
Это позволяет сформулировать следующее правило перевода дробных чисел по методу умножения:
- найти ;
- возвратиться к
предыдущему пункту, заменив
на дробную часть произведения
;
- закончить перевод,
выполнив l повторений первого пункта,
если точность перевода
=
;
выписать найденные в процессе перевода
целые части в порядке их получения,
заменив их цифрами
-ичной
системы, если это необходимо; найденная
запись есть
.
Пусть, к примеру,
=10,
=15,
=0,17,
=
.
Тогда
2,55;
8,25;
3,75;
11,25;
3,75.
Следовательно,
,
где
- цифра с количественным эквивалентом
в нулевом разряде, равным 11.
Легко понять, что метод умножения наиболее удобен, когда исходная система счисления привычна для человека.
При переводе смешанного числа целая и дробная его части переводятся отдельно, как это было изложено выше, а затем полученные коды объединяются в общую запись.
Рассмотрим теперь
частный случай перевода чисел из одной
системы счисления с натуральным
основанием в другую, когда
,
где r - целое положительное число.
3.2.1.5. Справедливо
следующее утверждение. Для перевода
любого числа x из системы счисления с
основанием
в
систему с основанием
необходимо заменить каждую цифру в коде
её
r-разрядным
-ичным
кодом.
Действительно,
если
,
то как следует из соотношения (3.1),
,
причем
.
Замена цифры
соответствующим
ей
-ичным
кодом
позволяет
заменить в этом соотношении её
количественный эквивалент
равным ему эквивалентом (3.13)
,
где
,
(
)
– некоторая
-ичная
цифра и отвечающий ей эквивалент в
нулевом разряде в порядке упоминания,
Подставляя (3.13) в (3.1), найдем, что
.
Положим теперь
.
При i=-m,
=0
j=-rm, а при i=n,
=r-1
j=r(n+1)-1.
Тогда
.
(3.14)
Соотношение (3.14) позволяет смотреть на запись, полученную в результате замены, выполненной в соответствии со сформулированным выше предложением, как на представление числа x в -ичной системе, то есть как на код .
Легко понять также,
что переход от
к
может быть реализован в обратном порядке.
При этом код
следует
разбить влево и вправо от запятой на
группы разрядов по r разрядов в каждой,
а затем заменить упомянутые группы
соответствующими им
-ичными
цифрами.
Так, к примеру,
.
Перейдем далее к вопросу перевода чисел в симметричные и кососимметричные системы счисления. В этом случае переводят первоначально по изложенным выше правилам в смещенную систему с основанием , равным основанию рассматриваемой симметричной или кососимметричной системы, а затем заменяют в полученной записи цифры на цифры требуемой системы, выполняя при необходимости суммирование последних в этой системе. Обратный перевод легко реализуется методом непосредственной замены.
Пусть, например,
надо перевести число
=70,375
в симметричную троичную систему. Это
число в обычной троичной системе имеет
вид
=2121,101
с точностью до
.
Имеем
+
Окончательный
ответ:
.
3.2.1.6.Рассмотрим,
наконец, случай перевода чисел в систему
счисления с отрицательным основанием.
Общий алгоритм такого перевода мы
описывать не будем, а ограничимся лишь
изложением без доказательства правил
перевода в систему с основанием -2. Для
этого исходное число переводится сначала
в обычную двоичную систему счисления.
Далее при
под ним подписывается число, у которого
в каждом четном разряде имеется 1, если
в соседнем справа разряде у
есть
1. Эти числа суммируются по правилам
сложения в минус двоичной системе. При
подписываемое число имеет 1 в каждом
нечетном разряде, если выполняется
аналогичное условие. Знак же
в
процессе минус двоичного сложения
игнорируется.
Так, например, если =-107, то =-110 1011.
Получаем 01101011
+ 10000010
10010101
Следовательно,
=10010101.