2. Перевод чисел из одной системы счисления в другую
Существует два основных метода перевода чисел из одной системы счисления в другую: табличный и расчетный [2].
Табличный метод прямого перевода основан на сопоставлении таблиц соответствия чисел различных систем счисления. Этот метод очень громоздок и требует очень большого объема памяти для хранения таблиц, но применим для любых систем счисления.
Расчетный метод перевода применим только для позиционных однородных систем счисления.
2.1 Перевод целых чисел из одной позиционной системы счисления в другую
Пусть задано число А в произвольной позиционной системе счисления с основанием L и его необходимо перевести в новую систему счисления с основанием Р, т.е. преобразовать к виду:
А(p)= аnрn + аn-1рn-1 + ... а1р1 + а0р0 , (2.1)
где ai= 0 ÷ (p-1) - база новой системы счисления.
Это выражение можно записать в виде:
А=А1р+а0 ,
где А1= (аnрn-1 + аn-1рn-2 + ... а2р1 + а1) - целая часть частного,
а0 - остаток от деления А/р, который является цифрой младшего разряда искомого числа.
При делении числа А1 на р получим остаток а1 и т.д. Иными словами, если записать выражение (2.1) по схеме Горнера:
,
после чего правую часть последовательно разделить на основание новой системы счисления р, то получим коэффициенты:
...
При этом деление продолжается до тех пор, пока не окажется, что
Правило перевода целых чисел из одной позиционной системы счисления в другую формулируется следующим образом:
Чтобы перевести целое число из одной позиционной системы счисления в другую необходимо исходное число последовательно делить на основание новой системы счисления, записанное в исходной системе счисления, до получения частного, равного нулю. Число в новой системе счисления записывается из остатков от деления, начиная с последнего.
Рассмотрим в качестве примера перевод целого числа 138 в двоичную, восьмеричную, шестнадцатиричную системы счисления.
138, 69, 34, 17, 8, 4, 2, 1, 0- частное
0 1 0 1 0 0 0 1 - остаток
138, 17, 2, 0- частное
2 1 2
138, 8, 0
10 8
[138]10=[10001010]2=[212]8=[8А]16
При переводе из двоичной системы счисления в десятичную исходное число необходимо делить на основание новой системы, т.е. на 10102.
Деление выполнить в двоичной системе трудно, поэтому на практике удобнее пользоваться общей записью числа в виде полинома. При переводе двоичных чисел в десятичную систему счисления обычно подсчитывают сумму степеней основания 2, при которых коэффициенты аі равны 1. Расчеты при этом ведутся в десятичной системе.
2.2 Перевод правильных дробей
Пусть правильную дробь А, заданную в произвольной позиционной системе счисления с основанием L необходимо перевести в новую систему с основанием Р, т.е. преобразовать ее к виду:
А= а-1р-1 +...+ а—kр-k, (2.2)
если, аналогично переводу целых чисел разделить обе части выражения на р-1, т.е умножить на р, то получим:
Ар = а-1 + А1,
где А1= а-2р-1 + а-3р-2 +...+ а—kр-k+1 - дробная часть произведения,
а-1 - целая часть результата.
Полученная при этом цифра целой части результата и будет первой цифрой искомого числа. Умножив теперь дробную часть результата на основание новой системы счисления, получим:
А1р = а-2 + А2,
где А2 - дробная часть произведения,
а-2 - следующая цифра искомого числа.
Следовательно, при переводе выражение (2.2) представляется по схеме Горнера:
А = р-1(а-1 +р-1(а-2 + ... + р-1(а-к+1 + р-1а-к)...)).
Для перевода правильной дроби из одной позиционной системы счисления в другую ее надо последовательно умножать на основание новой системы счисления до тех пор, пока в новой дроби не будет нужного количества цифр, которое определяется требуемой точностью представления дроби. Правильная дробь в новой системе счисления записывается из целых частей произведений получающихся при последовательном умножении, причем первая целая часть будет старшей цифрой новой дроби.
Рассмотрим в качестве примера перевод правильной дроби 0,536 в двоичную, восьмеричную, шестнадцатиричную системы счисления
[0,536]10=[0,10001001]2=[0,422335]8=[0,8937]16
0, | 536 2 | 0, | 536 8 | 0, | 536 16 | ||
1, | 072 2 | 4, | 288 8 | 8, | 576 16 | ||
0, | 144 2 | 2, | 304 8 | 9, | 216 16 | ||
0, | 288 2 | 2, | 432 8 | 3, | 456 16 | ||
0, | 576 2 | 3, | 456 8 | 7, | 296 | ||
1, | 152 2 | 3, | 648 8 | ||||
0, | 304 2 | 5, | 184 | ||||
0, | 608 |
Перевод дроби в общем случае представляет собой бесконечный процесс. Число цифр в новой системе счисления необходимо определять из условия, что точность представления числа в новой системе должна соответствовать точности в исходной системе.
... 100 10 1001=(9)10 100 11,1=(3,5)10 00 110 00 100 001 100 000 100 10 0 10 00 Таким образом, выполнение арифметических операций в двоичной системе счисления достаточно просто. Особенно просто выполнять операции сложения, вычитания и умножения. Благодоря этому, применение двоичной системы в вычислительных ...
... посылали гонцов, использовали почтовых голубей. У народов существовали различные способы оповещения о надвигающейся опасности: барабанный бой, дым костров, флаги и т. д. Однако использование такого представления информации требует предварительной договоренности о понимании принимаемого сообщения. Знаменитый немецкий ученый Готфрид Вильгельм Лейбниц предложил еще в XVII веке уникальную и простую ...
... будут происходить в будущих общеобразовательных и других учебных заведениях. Я не ставила перед собой цель оценивать эти сложные процессы, но нужно сделать вывод, что стремление обеспечивать личностно – ориентированное обучение на уроках информатики, создавать условия для развития индивидуальности ученика это важная, если не самая главная задача учителя. Хотя она и не из разряда легких. Именно ...
... быть выведены на печать. На экране рисунки могут быть статическими (неподвижными) или динамическими (движущимися). В последнее время машинная графика выделилась в самостоятельный раздел информатики с многочисленными приложениями. Средствами машинной графики создается не только печатная продукция, но и рекламные ролики на телевидении, мультфильмы. Объясним, как кодируется изображение в памяти ...
0 комментариев