Системы счисления. Перевод систем счисления.

Разберем одну из важнейших тем по информатике - Системы счисления. В школьной программе она раскрывается довольно "скромно", скорее всего, из-за недостатка отведенных на нее часов. Знания по этой теме, особенно на перевод систем счисления, являются обязательным условием для успешной сдачи ЕГЭ и поступления в ВУЗы на соответствующие факультеты. Ниже подробным образом рассмотрены такие понятия, как позиционные и непозиционные системы счисления, даны примеры этих систем счисления, представлены правила перевода целых десятичных чисел, правильных десятичных дробей и смешанных десятичных чисел в любую другую систему счисления, перевода чисел из любой системы счисления в десятичную, перевода из восьмеричной и шестнадцатиричной систем счисления в двоичную систему счисления. На экзаменах в большом количестве встречаются задачи по данной теме. Умение их решать – одно из требований к абитуриентам. Скоро: По каждой теме раздела, помимо подробного теоретического материала, будут представлены практически все возможные варианты задач для самостоятельного изучения. Кроме того, у вас появится возможность совершенно бесплатно скачать с файлообменника уже готовые подробные решения к данным задачам, иллюстрирующие различные способы получения верного ответа.

Перевод систем счисления

Непозиционные системы счисления.

Непозиционные системы счисления - системы счисления, в которых количественное значение цифры не зависит от ее местоположения в числе.

К непозиционным системам счисления относится, например, римская, где вместо цифр - латинские буквы.

I
1 (один)
V
5 (пять)
X
10 (десять)
L
50 (пятьдесят)
C
100 (сто)
D
500 (пятьсот)
M
1000 (тысяча)

Здесь буква V обозначает 5 независимо от ее местоположения. Однако стоит упомянуть о том, что хотя римская система счисления и является классическим примером непозиционной системы счисления, не является полностью непозиционной, т.к. меньшая цифра, стоящая перед большей, вычитается из нее:

IL
49 (50-1=49)
VI
6 (5+1=6)
XXI
21 (10+10+1=21)
MI
1001 (1000+1=1001)

Системы счисления

Позиционные системы счисления.

Позиционные системы счисления - системы счисления, в которых количественное значение цифры зависит от ее местоположения в числе.

Например, если говорить о десятичной системе счисления, то в числе 700 цифра 7 означает "семь сотен", но эта же цифра в числе 71 означает "семь десятков", а в числе 7020 - "семь тысяч".

Каждая позиционная система счисления имеет свое основание. В качестве основания выбирается натуральное число, большее или равное двум. Оно равно количеству цифр, используемых в данной системе счисления.

    Например:
  • Двоичная - позиционная система счисления с основанием 2.
  • Четверичная - позиционная система счисления с основанием 4.
  • Пятиричная - позиционная система счисления с основанием 5.
  • Восьмеричная - позиционная система счисления с основанием 8.
  • Шестнадцатиричная - позиционная система счисления с основанием 16.

Чтобы успешно решать задачи по теме "Системы счисления", ученик должен знать наизусть соответствие двоичных, десятичных, восьмеричных и шестнадцатиричных чисел до 1610:

10 с/с 2 с/с 8 с/с 16 с/с
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
16 10000 20 10

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

К числу прибавляется единица и получается новое число. Если разряд единиц становится равен основанию системы счисления, мы увеличиваем число десятков на 1 и т.д.

Этот "переход единицы" как раз и пугает большинство учеников. На самом же деле все довольно просто. Переход происходит, если разряд единиц становится равен основанию системы счисления, мы увеличиваем число десятков на 1. Многие, помня старую добрую десятичную систему моментально путаются в разряда и в этом переходе, ведь десятичный и, например, двоичный десятки - разные вещи.

Отсюда у находчивых учеников появляются "свои методики" (на удивление... работающие) при заполнении, например, таблиц истинности, первые столбцы (значения переменных) которых, фактически, заполняются двоичными числами в порядке возрастания.

Для примера разберем получение чисел в восьмеричной системе: К первому числу (0) прибавляем 1, получаем 1. Затем к 1 прибавляем 1, получаем 2 и т.д. до 7. Если мы прибавим к 7 единицу, получим число равное основанию системы счисления, т.е. 8. Тогда нужно увеличить на единицу разряд десятков (получаем восьмеричный десяток - 10). Далее, очевидно, идут числа 11, 12, 13, 14, 15, 16, 17, 20, ..., 27, 30, ..., 77, 100, 101...

Перевод систем счисления

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

Далее последовательно разбирается перевод систем счисления.

1. Перевод целых десятичных чисел в любую другую систему счисления.

Число нужно разделить на новое основание системы счисления. Первый остаток от деления - это и есть первая младшая цифра нового числа. Если частное от деления меньше или равно новому основанию, то его (частное) нужно снова разделить на новое основание. Деление нужно продолжать, пока не получим частное меньше нового основания. Это есть старшая цифра нового числа (нужно помнить, что, например, в шестнадцатиричной системе после 9 идут буквы, т.е. если в остатке получили 11, нужно записать его как B).

Пример ("деление уголком"): Переведем число 17310 в восьмеричную систему счисления.

Системы счисления

Таким образом, 17310=2558

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

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

Пример: Переведем число 0,6562510 в восьмеричную систему счисления.

Перевод систем счисления

Таким образом, 0,6562510=0,528

3. Перевод смешаных десятичных чисел в любую другую систему счисления.

Переводим отдельно целую часть, отдельно дробную - записываем в одно число.

Пример: Переведем число 17,2510 в восьмеричную систему счисления.

По аналогии с пунктом 1: 1710 = 218

По аналогии с пунктом 2: 0,2510 = 0,28

"Склеиваем" два числа и получаем ответ: 17,2510 = 21,28.

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

Числа необходимо представить в разложении по степеням той системы счисления, в которой находится число, при чем цифры числа необходимо записать в десятичном эквиваленте. Найти арифметическую сумму.

Пример: Переведем число 1011,012 в десятичную систему счисления.

1) Чтобы представить число в разложении по степеням, нужно найти запятую и проставить "карандашиком" влево и вправо от запятой степени над цифрами числа (слева - неотрицательные степени, т.е. начинаем с нуля; справа - отрицательные, начиная с -1):

13 02 11 10, 0-1 1-22

2) Далее умножаем каждую цифру на основание системы счисления, в которой находится число, возведенное в соответствующую "подписанную" степень (помним, что любое число в нулевой степени - это единица):

1011,012 = 1*23 + 0*22 + 1*21 + 1*20 + 0*2-1 + 1*2-2 =
= 8 + 0 + 2 + 1 + 0 + 1/22 = 11 + 1/4 = 11 + 0,25 = 11,2510

Ответ: 11,2510.

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

Каждую цифру восьмеричного числа нужно заменить соответствующей двоичной триадой ( * * * ) - например, для цифры 7 - 111, для 3 - 011. Незначащие нули можно отбросить.

Пример: Переведем число 274,068 в двоичную систему счисления.

Просто заменяем все числа триадами:

2 7 4, 0 6 -> 010 111 100, 000 110

274,068 = 10111100,000112

Ответ: 10111100,000112.

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

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

Пример: Переведем число 1111,01100112 в восьмеричную систему счисления.

Разбиваем на триады и заменяем:

001'111,011'001'100 -> 1'7,3'1'4

1111,01100112 = 17,3148

Ответ: 17,3148.

Откуда же появились эти "триады"?

Да это же степень, в которую нужно возвсти двойку, чтобы получить основание 8!

Очевидно, что для шестнадцатиричной системы счисления появятся тетрады ("тетра" - четыре) и т.д.

4 = 22
8 = 23
Триады
16 = 24
Тетрады
32 = 25

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

Перевод чисел из двоичной системы счисления в шестнадцатиричную и обратно выглядит так же, как и для пути "восьмеричная <-> двоичная". Отличие состоит лишь в использовании тетрад ( * * * * ).

Пример: Переведем число CD2,0416 в двоичную систему счисления.

Разбиваем и заменяем:

C'D'2, 0'4 -> 1100'1101'0010, 0000'0100

CD2,0416 = 110011010010,0000012

Ответ: 110011010010,0000012.