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

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

Принцип построения числа из цифр

Прежде всего нужно понять, что такое система счисления и её основание. Система счисления - способ представления чисел в виде комбинации тех или иных цифр. Основание системы - количество цифр, в ней использующихся. Например, в десятичной системе с основанием 10 всего 10 цифр - от 0 до 9. В шестнадцатеричной, соответственно, 16 цифр, для обозначения которых используются арабские цифры 0 - 9 и латинские буквы A - F вместо цифр 10 - 15. Например, 2F7BE 16 - число шестнадцатеричной системы. При такой записи нижним индексом обозначается основание системы счисления. Ключевым различием между системами с разными основаниями является "ценность" числа 10. В шестнадцатеричной системе 10 16 будет равно 16 10 , а в двоичной 10 2 равно всего лишь двум. 100 16 будет вычисляться как

100 16 = 10 16 * 10 16 = 16 10 * 16 10 = 256 10 .

Следует также различать понятия "цифра" и "число". Цифра обозначается одним символом, а число - может и несколькими. Например, число 9 10 в двоичной системе будет выглядеть как 1001 2 , а цифра 9 в двоичной системе не существует как таковая.

Алгоритм перевода

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

  1. Определить основание системы счисления. Оно обозначается нижним индексом после числа, к примеру, в числе 2F7BE 16 основание равно 16.
  2. Каждую цифру числа умножить на основание в степени, равной номеру цифры справа налево, начиная с нуля. В числе 2F7BE 16 Е (равное 14) умножается на 16 в нулевой степени, В (цифра 11) - на 16 в первой степени и так далее: 2F7BE 16 = 2*16 4 +15*16 3 + 7*16 2 + 11*16 1 + 14*16 0 .
  3. Сложить полученные результаты.

2*16 4 +15*16 3 + 7*16 2 + 11*16 1 + 14*16 0 = 194494 10 .

Рассмотрим на примерах, как самые популярные - шестнадцатеричную, восьмеричную и двоичную системы перевести в десятичную.

  • 5736 8 = 5*8 3 + 7*8 2 + 3*8 1 + 6*8 0 = 3038 10
  • 1001011 2 = 1*2 6 + 0*2 5 + 0*2 4 + 1*2 3 + 0*2 2 + 1*2 1 + 1*2 0 = 75 10
  • 2F7BE 16 = 2*16 4 +15*16 3 + 7*16 2 + 11*16 1 + 14*16 0 = 194494 10

Разумеется, считать каждый раз вручную неудобно, нерационально, да и неохота. Существует множество калькуляторов, умеющих переводить числа из системы в систему. К примеру, стандартный калькулятор Windows в режиме "Программист" (клавиши Alt+3 или меню "Вид") может работать с системами оснований 2, 8, 10 и 16.

В двоичной системе счисления используются всего две цифры 0 и 1. Другими словами, двойка является основанием двоичной системы счисления. (Аналогично у десятичной системы основание 10.)

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

В десятичной системе счисления мы располагаем десятью знаками-цифрами (от 0 до 9). Когда счет достигает 9, то вводится новый разряд (десятки), а единицы обнуляются и счет начинается снова. После 19 разряд десятков увеличивается на 1, а единицы снова обнуляются. И так далее. Когда десятки доходят до 9, то потом появляется третий разряд – сотни.

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

Попробуем считать в двоичной системе:
0 – это ноль
1 – это один (и это предел разряда)
10 – это два
11 – это три (и это снова предел)
100 – это четыре
101 – пять
110 – шесть
111 – семь и т.д.

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

Не трудно заметить, что в двоичной системе счисления длины чисел с увеличением значения растут быстрыми темпами. Как определить, что значит вот это: 10001001? Непривычный к такой форме записи чисел человеческий мозг обычно не может понять сколько это. Неплохо бы уметь переводить двоичные числа в десятичные.

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

1476 = 1000 + 400 + 70 + 6

1476 = 1 * 10 3 + 4 * 10 2 + 7 * 10 1 + 6 * 10 0

Посмотрите на эту запись внимательно. Здесь цифры 1, 4, 7 и 6 - это набор цифр из которых состоит число 1476. Все эти цифры поочередно умножаются на десять возведенную в ту или иную степень. Десять – это основание десятичной системы счисления. Степень, в которую возводится десятка – это разряд цифры за минусом единицы.

Аналогично можно разложить и любое двоичное число. Только основание здесь будет 2:

10001001 = 1*2 7 + 0*2 6 + 0*2 5 + 0*2 4 + 1*2 3 + 0*2 2 + 0*2 1 + 1*2 0

1*2 7 + 0*2 6 + 0*2 5 + 0*2 4 + 1*2 3 + 0*2 2 + 0*2 1 + 1*2 0 = 128 + 0 + 0 + 0 + 8 + 0 + 0 + 1 = 137

Т.е. число 10001001 по основанию 2 равно числу 137 по основанию 10. Записать это можно так:

10001001 2 = 137 10

Почему двоичная система счисления так распространена?

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

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

Может потребоваться перевести десятичное число в двоичное. Один из способов – это деление на два и формирование двоичного числа из остатков. Например, нужно получить из числа 77 его двоичную запись.

Чтобы быстро переводить числа из десятичной системы счисления в двоичную, нужно хорошо знать числа "2 в степени". Например, 2 10 =1024 и т.д. Это позволит решать некоторые примеры на перевод буквально за секунды. Одной из таких задач является задача A1 из демо ЕГЭ 2012 года . Можно, конечно, долго и нудно делить число на "2". Но лучше решать по-другому, экономя драгоценное время на экзамене.

Метод очень простой. Суть его такая: если число, которое нужно перевести из десятичной системы, равно числу "2 в степени", то это число в двоичной системе содержит количество нулей, равное степени. Впереди этих нулей добавляем "1".

  • Переведем число 2 из десятичной системы. 2=2 1 . Поэтому в двоичной системе число содержит 1 нуль . Впереди ставим "1" и получаем 10 2 .
  • Переведем 4 из десятичной системы. 4=2 2 . Поэтому в двоичной системе число содержит 2 нуля . Впереди ставим "1" и получаем 100 2.
  • Переведем 8 из десятичной системы. 8=2 3 . Поэтому в двоичной системе число содержит 3 нуля . Впереди ставим "1" и получаем 1000 2.


Аналогично и для других чисел "2 в степени".

Если число, которое нужно перевести, меньше числа "2 в степени" на 1, то в двоичной системе это число состоит только из единиц, количество которых равно степени.

  • Переведем 3 из десятичной системы. 3=2 2 -1. Поэтому в двоичной системе число содержит 2 единицы . Получаем 11 2.
  • Переведем 7 из десятичной системы. 7=2 3 -1. Поэтому в двоичной системе число содержит 3 единицы . Получаем 111 2.

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


Аналогичен перевод и для других чисел "2 в степени-1".

Понятно, что перевод чисел от 0 до 8 можно сделать быстро или делением, или просто знать наизусть их представление в двоичной системе. Я привела эти примеры, чтобы Вы поняли принцип данного метода и использовали его для перевода более "внушительных чисел", например, для перевода чисел 127,128, 255, 256, 511, 512 и т.д.

Можно встретить такие задачи, когда нужно перевести число, не равное числу "2 в степени", но близкое к нему. Оно может быть больше или меньше числа "2 в степени". Разница между переводимым числом и числом "2 в степени" должна быть небольшая. Например, до 3. Представление чисел от 0 до 3 в двоичной системе надо просто знать без перевода.

Если число больше , то решаем так:

Переводим сначала число "2 в степени" в двоичную систему. А потом прибавляем к нему разницу между числом "2 в степени" и переводимым числом.

Например, переведем 19 из десятичной системы. Оно больше числа "2 в степени" на 3.

16=2 4 . 16 10 =10000 2 .

3 10 =11 2 .

19 10 =10000 2 +11 2 =10011 2 .

Если число меньше числа "2 в степени", то удобнее пользоваться числом "2 в степени-1". Решаем так:

Переводим сначала число "2 в степени-1" в двоичную систему. А потом вычитаем из него разницу между числом "2 в степени-1" и переводимым числом.

Например, переведем 29 из десятичной системы. Оно больше числа "2 в степени-1" на 2. 29=31-2.

31 10 =11111 2 .

2 10 =10 2 .

29 10 =11111 2 -10 2 =11101 2

Если разница между переводимым числом и числом "2 в степени" больше трех , то можно разбить число на составляющие, перевести каждую часть в двоичную систему и сложить.

Например, перевести число 528 из десятичной системы. 528=512+16. Переводим отдельно 512 и 16.
512=2 9 . 512 10 =1000000000 2 .
16=2 4 . 16 10 =10000 2 .
Теперь сложим столбиком: