Что такое двоичная система счисления? Бинарные числа: двоичная система счисления Зачем придумали двоичную систему счисления

Введение………………………………………………………………………………

I. Понятие двоичной системы счисления…………………………………………………………………..

1.1. История двоичной системы счисления

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

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

II. Почему удобна двоичная система? ………………………………………………

2.1. Достоинства двоичной системы

2.2. Недостатки двоичной системы

Заключение …………………………………………………………………………..

Библиографический список………………………………………………………....


Введение:

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

Понятие «число» является ключевым как для математики, так и для информатики. Люди всегда считали и записывали числа, даже 5 тысяч лет назад. Но записывали их по другим правилам, хотя в любом случае число изображалось с помощью любого или нескольких символов, которые назывались цифрами.

Язык чисел, как и любой другой, имеет свой алфавит. В том языке чисел, которым мы обычно пользуемся, алфавитом служат десять цифр – от 0 до 9. Это десятичная система счисления.

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

Причина, по которой десятичная система счисления стала общепринятой, вовсе не математическая. Десять пальцев рук – вот аппарат для счета, которым человек пользуется с доисторических времен. Древнее написание десятичных цифр:


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

Двоичная система счисления - позиционная система счисления с основанием два. (Позиционная система счисления (позиционная нумерация) - система счисления, в которой значение каждого числового знака (цифры) в записи числа зависит от его позиции (разряда).

История двоичной системы счисления.

Мысль о двоичной системе принадлежит Лейбницу, который полагал, что при трудных исследованиях в теории чисел она может иметь большие преимущества перед десятичной системой. Кроме того, при всяких арифметических операциях действия над числами, написанными в бинарной системе, облегчаются в высшей степени. Иезуит Буве (Bouvet), миссионер в Китае, которому Лейбниц писал о своём изобретении, сообщил ему, что в Китае существует загадочная надпись, которую можно вполне объяснить бинарной системой. Надпись эта, которую приписывают императору Фо-ги, жившему в 25 веке до н. э., основателю Китайской империи, покровителю наук и искусств, не могла быть объяснена китайскими учёными, которые считали её не имеющей смысла. Она состоит из ряда длинных и коротких чёрточек. Если принять, что длинная черта означает 1, а короткая 0, то вся надпись оказывается просто рядом натуральных чисел, написанных по двоичной системе. Вот эта надпись:

Двоичная система счисления оказалась удобной для использования в ЭВМ. Использование двоичной системы оказалось наиболее эффективным в электронных схемах: цифры 0 и 1 удобно кодировать уровнями напряжения, соответствующим напряжению на шинах питания, „0“ и „+V“ ; использование большего количества уровней привело бы к усложнению схем. Хотя были прецеденты создания и троичных ЭВМ.

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

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

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

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

0 – это ноль

1 – это один (и это предел разряда)

10 – это два

11 – это три (и это снова предел)

100 – это четыре

101 – пять

110 – шесть

111 – семь и т.д.

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

1. 10001001 = 1*2^{7} + 0*2^{6} + 0*2^{5} + 0*2^{4} + 0*2^{3} + 0*2^{2} + 0* 2^{1} + 0*2^{0} = 128 + 0 + 0 + 0 + 8 + 0 + 0 + 1 = 137

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

10001001_{2} = 137_{10}

2. 1011_{2} = 1*2^3 + 0*2*2+1*2^1+1*2^0 =1*8 + 1*2+1=11_{10}

3. 10101010_{2} = 1*2^{7} + 0*2^{6} + 1*2^{5} + 0*2^{4} + 1*2^{3} + 0*2^{2} + 1*2^{1} + 0*2^{0} = 128 + 32 +8 + 2 = 170_{10}

4. 101101_{2} = 1*2^{5} + 0*2^{4} + 1*2^{3} + 1*2^{2} + 0*2^{1} + 1*2^{0} = 63_{10}

5. 100,101_{2} = 1*2^{2} +0*2^{1} + 0*2^{0} + 1*2^{-1} + 0*2^{-2} + 1*2^{-3} = 4 + 2 = 6Элементы оглавления не найдены. _{10}

6. 111101_{2} = 1*2^{5} + 1*2^{4} + 1*2^{3} + 1*2^{2} + 0*2^{1} + 1*2^{0} = 32 +16 + 13 = 61_{10}

7. 1001_{2} = 1*2^{3} + 0*2^{2} + 0*2^{1} + 1*2^{0} = 9

8. 10011,1_{2} = 1*2^{4} + 0*2^{3} + 0*2^{2} + 1*2^{1} + 1*2^{0} + 1*2^{-1} = 19,5

9. 11101,11_{2} = 1*2^{5} + 1*2^{4} + 1*2^{3} + 0*2^{1} +1*2^{0} + 1*2^{-1} = 57,5

10. 100111 = 1*2^{5} + 0*2^{4} + 0*2^{3} +1*2^{2} + 1*2^{1} + 1*2^{0} = 39

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

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

77 / 2 = 38 (1 остаток)

38 / 2 = 19 (0 остаток)

19 / 2 = 9 (1 остаток)

9 / 2 = 4 (1 остаток)

4 / 2 = 2 (0 остаток)

2 / 2 = 1 (0 остаток)

1 / 2 = 0 (1 остаток)

Собираем остатки вместе, начиная с конца: 1001101. Это и есть число 77 в двоичном представлении. Проверим:

1. 1001101_{10} = 1*2^{6} + 0*2^{5} + 0*2^{4} + 1*2^{3} + 1*2^{2} + 0*2^{1} + 1*2^{0} = 64 + 8 + 5 = 77_{2}

2. 49_{10} = \dfrac{ 49 } { 2 } = 110001_{2}

3. 15_{10} = \dfrac{ 49 } { 2 } = 1111_{2}

4. 31_{10} = \dfrac{ 31 } { 2 } = 11111_{2}

5. 0,45_{10} = \dfrac{ 0,45 } { 2 } = 0,11100_{2}

6. 95_{10} = \dfrac{ 95 } {2 } = 1011111_{2}

7. 102_{10} = \dfrac{102 } { 2 } = 1100110_{2}

8. 58_{10} = \dfrac{ 58 } { 2 } = 110100_{2}

9. 4956_{10} = \dfrac{ 4956 } { 2 } = 101101011100_{2}

10. 125_{10} = \dfrac{ 125 } { 2 } = 10111101_{2}

2. Почему удобна двоичная система?

Стоит отметить, что двоичная система издавна была предметом пристального внимания ученых. Официальное рождение двоичной системы счисления связано с именем Г.В.Лейбница, опубликовавшего в 1703 г. статью, в которой он рассмотрел правила выполнения арифметических действий над двоичными числами. Во время работы ЭВМ постоянно происходит преобразование чисел из десятичной системы счисления в двоичную, и наоборот. Да и человеку, имеющему дело с ЭВМ, часто приходится прибегать к преобразованиям чисел.

Вот, что писал Лаплас об отношении великого немецкого математика Г.В. Лейбница к двоичной (бинарной) системе: «В своей бинарной арифметике Лейбниц видел прообраз творения. Ему представлялось, что единица представляет божественное начало, а нуль – небытиё и что высшее существо создает все сущее из небытия точно таким же образом, как единица и нуль в его системе выражают все числа».

Главное достоинство двоичной системы – простота алгоритмов сложения, вычитания, умножения и деления. Таблица умножения в ней совсем не требуется ничего запоминать, ведь любое число, умноженное на ноль, равно нулю, а умноженное на единицу равно самому себе. И при этом никаких переносов в следующие разряды, а они есть даже в троичной системе счисления.

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

Электромагнитные реле (замкнуто/разомкнуто), широко использовались в конструкциях первых ЭВМ;

Участок поверхности магнитного носителя информации (намагничен/ размагничен);

Участок поверхности лазерного диска (отражает/не отражает);

Триггер, может устойчиво находиться в одном из двух состояний, широко используется в оперативной памяти компьютера.

Утверждение двоичной арифметики в качестве общепринятой при конструкции ЭВМ с программным управлением состоялось под влиянием работы Дж. фон Неймана о проекте первой ЭВМ с хранимой в памяти программой. Работа написана в 1946 году.

2.1. Достоинства двоичной системы счисления:

1. Достоинства двоичной системы счисления заключаются в простоте реализации процессов хранения, передачи и обработки информации на компьютере.

2. Для ее реализации нужны элементы с двумя возможными состояниями, а не с десятью.

3. Представление информации посредством только двух состояний надежно и помехоустойчиво.

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

5. Двоичная арифметика проще десятичной.

2.2. Недостатки двоичной системы счисления:

1. Итак, код числа, записанного в двоичной системе счисления представляет собой последовательность из 0 и 1. Большие числа занимают достаточно большое число разрядов.

2. Быстрый рост числа разрядов - самый существенный недостаток двоичной системы счисления.

3.1. Заключение:

В ходе изучения данной темы мы выяснили, что двоичная система счисления намного старше электронных машин. Двоичной системой счисления люди интересуются давно. Особенно сильным это увлечение было с конца 16 до 19 века. Знаменитый Лейбниц считал двоичную систему счисления простой, удобной, красивой. Даже по его просьбе была выбита медаль в честь этой «диадической» системы (так называли тогда двоичную систему счисления).

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

Наличие в системе всего лишь двух символов упрощает их преобразование в электрические сигналы.

Из любой системы счисления можно перейти к двоичному коду.

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

Но двоичная система имеет и недостатки:

Ею пользуются только для ЭВМ для внутренней и внешней работы;

Быстрый рост числа разрядов, необходимых для записи чисел.

Библиографический список

1. Нестеренко А.В. ЭВМ и профессия программиста. М.: Просвещение, 1990.

2. Решетников В.Н., Сотников А.Н. Информатика – что это? М.: Радио и связь, 1989.

3. Фомин С.В. Системы счисления. М.: Наука, 1987.

4. Информатика: Системы счисления: спецвыпуск, №42 1995.

5. Информатика: Семинар, №2, №3 2006.

6. Информатика: В мир информатики, №8 2007.

7. http://www.internet-school.ru/Enc.ashx?item=3773

Двоичная система счисления сегодня используется практически во всех цифровых устройствах. Компьютеры, контроллеры и другие вычислительные устройства производят вычисления именно в двоичной системе. Цифровые устройства записи и воспроизведения звука, фото и видео хранят и обрабатывают сигналы в двоичной системе счисления. Передача информации по цифровым каналам связи также использует модель двоичной системы счисления.

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

Ноль - 0 ;
Один - 1 ;

А что делать дальше? Все цифры кончились. Как же изобразить число два? В десятичной системе, в подобной ситуации (когда закончились цифры), мы вводили понятие десятка, здесь же мы вынуждены ввести понятие "двойка" и скажем, что два - это одна двойка и ноль единиц. А это уже можно и записать как - "10 2 ".

Итак, Два - 10 2 (одна двойка, ноль единиц)
Три - 11 2 (одна двойка, одна единица)

Четыре - 100 2 (одна четверка, ноль двоек, ноль единиц)
Пять - 101 2 (одна четверка, ноль двоек, одна единица)
Шесть - 110 2 (одна четверка, одна двойка, ноль единиц)
Семь - 111 2 (одна четверка, одна двойка, одна единица)

Возможности трех разрядов исчерпались, вводим более крупную единицу счета - восьмерку (осваиваем новый разряд).

Восемь - 1000 2 (одна восьмерка, ноль четверок, ноль двоек, ноль единиц)
Девять - 1001 2 (одна восьмерка, ноль четверок, ноль двоек, одна единица)
Десять - 1010 2 (одна восьмерка, ноль четверок, одна двойка, ноль единиц)
...
и так далее...
...

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

Рассмотрим число 1011 2 записанное в двоичной системе счисления. Про него можно сказать, что оно содержит: одну восьмерку, ноль четверок, одну двойку и одну единицу. И получить его значение через входящие в него цифры можно следующим образом.

1011 2 = 1 *8+0 *4+1 *2+1 *1, здесь и далее знак * (звездочка) означает умножение.

Но ряд чисел 8, 4, 2, 1 есть не что иное, как целые степени числа два (основания системы счисления) и поэтому можно записать:

1011 2 = 1 *2 3 +0 *2 2 +2 *2 1 +2 *2 0

Подобным образом для двоичной дроби (дробного числа) например: 0.101 2 (пять восьмых), про него можно сказать, что оно содержит: одну вторую, ноль четвертых и одну восьмую долю. И его значение можно вычислить следующим образом:

0.101 2 = 1 *(1/2) + 0 *(1/4) + 1 *(1/8)

И здесь ряд чисел 1/2; 1/4 и 1/8 есть не что иное, как целые степени числа два и мы также можем записать:

0.101 2 = 1 *2 -1 + 0 *2 -2 + 1 *2 -3

Для смешанного числа 110.101 аналогичным образом можем записать:

110.101 = 1 *2 2 +1 *2 1 +0 *2 0 +1 *2 -1 +0 *2 -2 +1 *2 -3

Давайте пронумеруем разряды целой части двоичного числа, справа налево, как 0,1,2…n (нумерация начинается с нуля!). А разряды дробной части, слева направо, как -1,-2,-3…-m. Тогда значение некоторого двоичного числа может быть вычислено по формуле:

N = d n 2 n +d n-1 2 n-1 +…+d 1 2 1 +d 0 2 0 +d -1 2 -1 +d -2 2 -2 +…+d -(m-1) 2 -(m-1) +d -m 2 -m

Где: n - количество разрядов в целой части числа минус единица;
m - количество разрядов в дробной части числа
d i - цифра стоящая в i -м разряде

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

N = d n q n +d n-1 q n-1 +…+d 1 q 1 +d 0 q 0 +d -1 q -1 +d -2 q -2 +…+d -(m-1) q -(m-1) +d -m q -m

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


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

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

Каждая цифра в двоичном числе называется бит (или разряд ). Четыре бита – это полубайт (или тетрада ), 8 бит – байт , 16 бит – слово , 32 бита – двойное слово . Запомните эти термины, потому что в программировании они используются очень часто. Возможно, вам уже приходилось слышать фразы типа слово данных или байт данных . Теперь, я надеюсь, вы понимаете, что это такое.

Отсчёт битов в числе начинается с нуля и справа. То есть в двоичном числе самый младший бит (нулевой бит) является крайним справа. Слева находится старший бит . Например, в слове старший бит – это 15-й бит, а в байте – 7-й. В конец двоичного числа принято добавлять букву b . Таким образом вы (и ассемблер) будете знать, что это двоичное число. Например,

101 – это десятичное число 101b – это двоичное число, которое эквивалентно десятичному числу 5. А теперь попробуем понять, как формируется двоичное число .

Ноль, он и в Африке ноль. Здесь вопросов нет. Но что дальше. А дальше разряды двоичного числа заполняются по мере увеличения этого числа. Для примера рассмотрим тетраду. Тетрада (или полубайт) имеет 4 бита.

Двоичное Десятичное Пояснения
0000 0 -
0001 1
0010 2 В следующий бит (бит 1) устанавливается 1, предыдущий бит (бит 0) очищается.
0011 3 В младший бит устанавливается 1.
0100 4 В следующий бит (бит 2) устанавливается 1, младшие биты (бит 0 и 1) очищаются.
0101 5 В младший бит устанавливается 1.
0110 6 Продолжаем в том же духе...
0111 7 ...
1000 8 ...
1001 9 ...
1010 10 ...
1011 11 ...
1100 12 ...
1101 13 ...
1110 14 ...
1111 15 ...

Итак, мы видим, что при формировании двоичных чисел разряды числа заполняются нулями и единицами в определённой последовательности:

Если младший равен нулю, то мы записываем туда единицу. Если в младшем бите единица, то мы переносим её в старший бит, а младший бит очищаем. Тот же принцип действует и в десятичной системе:

0…9 10 – очищаем младший разряд, а в старший добавляем 1 Всего для тетрады у нас получилось 16 комбинаций. То есть в тетраду можно записать 16 чисел от 0 до 15. Байт – это уже 256 комбинаций и числа от 0 до 255. Ну и так далее. На рис. 2.2 показано наглядно представление двоичного числа (двойное слово).

Рис. 2.2. Двоичное число.

В двоичной системе счисления используются всего две цифры 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 его двоичную запись:

77 / 2 = 38 (1 остаток)
38 / 2 = 19 (0 остаток)
19 / 2 = 9 (1 остаток)
9 / 2 = 4 (1 остаток)
4 / 2 = 2 (0 остаток)
2 / 2 = 1 (0 остаток)
1 / 2 = 0 (1 остаток)

Собираем остатки вместе, начиная с конца: 1001101. Это и есть число 77 в двоичном представлении. Проверим:

1001101 = 1*2 6 + 0*2 5 + 0*2 4 + 1*2 3 + 1*2 2 + 0*2 1 + 1*2 0 = 64 + 0 + 0 + 8 + 4 + 0 + 1 = 77

Для того чтобы в общих чертах понять, как думает компьютер, начнём с самого начала. Компьютер, по сути, – это много всякой электроники, собранной вместе в правильном порядке. А электроника (до того, как к ней добавили программу) понимает только одно: включена она или выключена, есть сигнал или нет сигнала.

Обычно «есть сигнал» обозначают единицей, а «нет сигнала» – нулём: отсюда и выражение, что «компьютер говорит на языке нулей и единиц».

Этот язык нулей и единиц называют ещё двоичной системой счисления – потому что в ней всего две цифры. Наша привычная система счисления – десятичная, в ней десять цифр (0, 1, 2, 3, 4, 5, 6, 7, 8, 9). Но есть и множество других – восьмеричная, пятеричная, одиннадцатиричная и какая угодно ещё.

У нас с вами нет цифры «десять», правда? Число 10 состоит из двух цифр – 1 и 0.

Точно так же в пятеричной системе счисления не будет цифры «5», только 0, 1, 2, 3 и 4.

Посчитаем в пятеричной системе: 0, 1, 2, 3, 4, 10 , 11, 12, 13, 14, 20 , 21, 22, 23, 24, 30 , 31, 32, 33, 34, 40 , 41, 42, 43, 44, 100 (!!!), 101, 102 и так далее. Можно сказать, что как система счисления называется, такой цифры в ней и нет. В нашей десятичной нет цифры «10», в пятеричной нет цифры «5» (и всех, которые после неё), в восьмеричной – «8» и так далее.

А в шестнадцатиричной «16», например, есть! Поэтому нам шестнадцатиричную систему понять ещё сложнее. Давайте посчитаем в шестнадцатиричной:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10 , 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F, 20 , 21, 22…97, 98, 99, 9A, 9B, 9C, 9D, 9E, 9F, A0 , A1, A2… F7, F8, F9, FA, FB, FC, FD, FE, FF, 100 , 101, 102, 103, 104, 105, 106, 107, 108, 109, 10A, 10B, 10C и так далее.

Двоичная система счисления, впрочем, тоже выглядит странновато для непривычного взгляда:

0, 1, 10 , 11, 100 , 101, 110, 111, 1000 , 1001, 1010, 1011, 1100, 1101, 1110, 1111, 10000 , 10001…

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

В компьютерных программах часто используют восьмеричную и шестнадцатиричную системы: компьютеру легко их понять (потому что 8=2*2*2, 16=2*2*2*2, а с двоичной системой компьютер знаком изначально), а для людей это удобно, потому что поближе к привычной десятичной.

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

И на конфетах мы с вами будем переводить число 33 в восьмеричную систему счисления. Мы решим, что единицы – это сами конфеты, а десятки – это коробки, в каждой из которых лежит по десять конфет. Вот и получится, что 33 – это 3 коробки по 10 конфет и ещё 3 конфеты где-то сбоку.

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

Из 33 получится 4 полных восьмеричных коробочки и 1 конфета останется сама по себе, так как 33/8=4 (ост. 1). То есть 33=8*4 +1 – так в восьмеричной системе счисления получается число 41 .

33 в десятичной – это 41 в восьмеричной. Это одно и то же число, просто разложенное по разным коробочкам, переведённое в разное основание. Количество конфет не поменялось, мы просто считали их по-разному!

Двоичная система, как мы уже выяснили, более странная и непривычная для человеческого взгляда. Давайте попробуем перевести 33 в двоичную – получится аж 16 коробочек по 2! И что же делать? Писать 16 как-то странно, помня о том, что в двоичной системе есть только ноль и единица, а шестёрки, которая нам нужна для шестнадцати, совершенно точно нет!

Посмотрим на нашу десятичную систему. В ней мы считаем десятки – 10, 20, 30, 40, 50, 60, 70, 80, 90 – а когда у нас набирается десять десятков, мы достаём большую коробку – 100.

У нас 100 – это 10*10, 1000 – 10*10*10, 10 000 – 10*10*10*10 и так далее. Для других систем счисления это работает точно так же! В восьмеричной системе 100=8*8, 1000=8*8*8; в двоичной 100=2*2, а 1000=2*2*2; а в шестнадцатиричной (есть и такая, помните?) 100=16*16, 1000=16*16*16.

Здесь нам пригодятся степени. Если вы их ещё не проходили в школе, не пугайтесь, степени – это очень просто. Число в степени – это число, сколько-то раз умноженное на само себя. То есть 5 3 =5*5*5 (пять в третьей степени – это пять , три раза умноженная сама на себя: 5*5*5), или 8 5 =8*8*8*8*8 (восемь в пятой степени – это восемь , пять раз умноженная на саму себя: 8*8*8*8*8).

Если мы вспомним про наши 10 000=10*10*10*10 в десятичной и 1000=8*8*8 в восьмеричной, то можно легко заметить, что сколько нулей, столько раз и умножаем на само себя. Другими словами, количество символов в числе минус один – это степень, в которую надо возвести основание. В числе 1000 у нас четыре символа, значит умножать надо 4–1 , то есть 3 раза. Если основание 10, то тысяча – это 10, три раза умноженная сама на себя: 10*10*10. Если основание 8, то тысяча – это 8, три раза умноженная сама на себя: 8*8*8.

Обо всём этом мы заговорили, пытаясь перевести 33 в двоичную систему. Просто так поделить это число на коробочки по 2 оказалось затруднительным. Но если вспомнить про наши сотни-тысячи, можно задуматься: а ведь в двоичной 100=2*2, 1000=2*2*2, 10 000=2*2*2*2 и так далее.

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

Теперь, глядя на табличку, мы видим, что 33=2 5 +1, то есть 33=2*2*2*2*2+1. Вспоминаем – сколько раз умножаем, столько будет нулей – то есть наше 2*2*2*2*2 в двоичной системе будет 100000. Не забудем оставшуюся в стороне единичку, и получится, что 33 в десятичной – это 100001 в двоичной. Правильно и красиво это записывают так:

33 10 =100001 2

Давайте (чтобы совсем хорошо понять) переведём в двоичную систему число 15.

  1. В первую очередь – смотрим в табличку.

а) Какое самое близкое к 15 число в ней? Нет, 16 не подходит, оно больше, а нам нужно самое близкое, которое меньше. Получается, что это 8, то есть 2 3 , то есть 2*2*2.

б) Восемь конфет из 15 разобрали, осталось – 15-8 – семь. Какое ближайшее число из таблички? Нет, восемь снова не подойдет, см. выше. Подойдет четыре, то есть 2 2 , то есть 2*2.

в) Четыре из семи конфет разобрали, осталось – 7-4 – три. Из таблички понимаем, что самое близкое число – 2, то есть 2 1 , то есть просто 2.

г) Три минус два – осталась 1 конфета, тут уже табличка не понадобится. В таблички такого рода можно не смотреть, когда ваш остаток меньше основания, а наша единица точно меньше двойки.

  1. Собираем всё найденное в табличке вместе: 15=2 3 + 2 2 + 2 1 + 1, оно же: 15=2*2*2 + 2*2 + 2 + 1.
  2. В двоичной системе 2*2*2=1000, 2*2=100, 2=10, помните? И у нас получается 1000+100+10+1, то есть 1111.
  3. Итак,

15 10 =1111 2

Когда просто смотришь на все эти шаги, кажется, что это просто свалка из Кучи Разных Странно Написанных Цифр . И запутаться во всём этом в первый раз – нормально. И во второй, и в третий. Просто попробуйте сделать это ещё и ещё раз – по шагам, как написано выше, и всё получится.

И наоборот это тоже работает! Например, число 11010101 2 – как из него сделать понятное десятичное? Точно так же, при помощи таблички. Пойдем с конца:

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

1*1+0*2+1*4+0*8+1*16+0*32+1*64+1*128=

1+0+4+0+16+0+64+128=213

11010101 2 = 213 10

Вот примерно так компьютер понимает привычные нам числа.

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

Итак, возьмем пример 15+6 и решим его в разных системах счисления. Понятно, что в нашей, десятичной, получится 21. А что выйдет, например, в восьмеричной?

Переводим 15 в восьмеричную систему счисления. Первый шаг у нас при переводе в другую систему – посмотреть в табличку степеней. 8 2 – это уже 64, и в 15 оно точно уже никак не влезет, поэтому берем 8 1 – то есть просто 8. 15–8=7, оно меньше нашего основания 8, поэтому с ним мы ничего не делаем.

Итак, получилось, что 15=8 1 +7 .

В восьмеричной системе логика точно такая же, как, например, в двоичной: 8 3 – это 1000, 8 2 – это 100, 8 1 – это 10. Получилось, что:

15 10 =17 8

Напомню, наш пример был 15+6. 15 мы перевели в восьмеричную систему, как же перевести 6? Она меньше 8, нашего основания, поэтому ответ – оставить как есть. Наш пример сейчас выглядит так:

15 10 +6 10 =17 8 +6 8

Теперь мы будем складывать в восьмеричной системе счисления. Как это делается? Так же, как и в десятичной, но надо помнить, что десяток в восьмеричной системе – это восемь, а не десять, и что 8 и 9 в ней не существует.

Когда мы считаем в десятичной системе, по сути, мы делаем так:

15+6=15+5+1=20+1=21

Попробуем проделать тот же фокус в восьмеричной системе:

17 8 +6 8 =17 8 +1 8 +5 8 =20 8 +5 8 =25 8

Почему 17+1? Потому что 7+1=8, а 8 – это наш десяток! В восьмеричной системе 7+1=10, а значит, 17+1=20. Если на этом месте ваш мозг начинает бить тревогу и рассказывать, что здесь что-то не так, вернитесь в начало статьи, где мы с вами считали в разных системах счисления.

Теперь наш пример выглядит как

15 10 +6 10 =17 8 +6 8 =25 8

Переведем 25 8 обратно в нашу систему счисления. В десятичной мы бы, увидев число 25, могли сказать, что в нём две десятки и пять единиц. В восьмеричной, как вы, наверное, уже догадались, число 25 8 – это две восьмерки и пять единиц. То есть 25 8 =2*8+5=21 10 .

Итак, наш пример целиком:

15 10 +6 10 =17 8 +6 8 =25 8 =21 10

Получилось точно такое же 21, какое вышло у нас в самом начале, когда мы посчитали 15+6 привычным нам способом в десятичной системе.

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

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