- Двоичная система счисления
- Перевод чисел из двоичной системы счисления в десятичную
- Почему двоичная система счисления так распространена?
- Перевод десятичного числа в двоичное
- Двоичная система счисления
- Немного истории
- Таблица и алфавит
- Представление двоичных чисел
- Применение двоичной системы в информатике
- Перевод чисел из одной системы счисления в другую
- Кратко об основных системах счисления
- Перевод в десятичную систему счисления
- Перевод из десятичной системы счисления в другие
- Перевод из двоичной системы в восьмеричную
- Перевод из двоичной системы в шестнадцатеричную
- Перевод из восьмеричной системы в двоичную
- Перевод из шестнадцатеричной системы в двоичную
- Перевод из восьмеричной системы в шестнадцатеричную и наоборот
Двоичная система счисления
В двоичной системе счисления используются всего две цифры 0 и 1. Другими словами, десятичная двойка является основанием двоичной системы счисления, аналогично тому, как в десятичной системе основанием является число десять.
Чтобы научиться считать в двоичной системе счисления, рассмотрим, как формируются числа в привычной для нас десятичной.
В десятичной системе счисления мы располагаем десятью знаками-цифрами: от 0 до 9. Когда счет достигает числа 9, вводится новый более старший разряд – десятки. При этом разряд единиц обнуляется и счет в этом разряде опять начинается с нуля. После числа 19 разряд десятков увеличивается на 1, а разряд единиц снова обнуляется. Получается число 20. Когда десятки дойдут до 9, впереди них появится третий разряд – сотни.
Формирование каждого последующего числа в двоичной системе счисления аналогично тому, как это происходит в десятичной за исключением того, что используются всего-лишь две цифры: 0 и 1. Как только разряд достигает своего предела, то есть единицы, появляется новый разряд, а старый обнуляется.
Итак, число три в двоичной системе записывается как 11, в десятичной – как 3. Количественно это одинаковые числа. Это одно и то же число, выраженное в различных системах счисления. Если есть вероятность неоднозначной трактовки числа, к нему приписывается нижний индекс в десятичной системе счисления, обозначающий, в какой системе счисления выражено данное число:
Индекс для числа, выраженного в десятичной системе, обычно опускается.
Перевод чисел из двоичной системы счисления в десятичную
В двоичной системе счисления с увеличением значения количество разрядов растет очень быстро. Как определить, что значит двоичное число 10001001? Нам сложно понять, сколько это, мы привыкли мыслить в десятичной системе. Поэтому часто используется перевод двоичных чисел в десятичные.
В десятичной системе счисления любое число можно представить в форме суммы единиц, десяток, сотен и так далее. Например:
5476 = 5000 + 400 + 70 + 6
Можно пойти еще дальше и разложить число, используя основание системы счисления, возводимое в показатель степени, равный разряду цифры, уменьшенному на единицу:
5476 = 5 * 10 3 + 4 * 10 2 + 7 * 10 1 + 6 * 10 0
После равенства числа 5, 4, 7 и 6 – это набор цифр из которых состоит число 5476. Все эти цифры умножаются на десять, возведенную в ту или иную степень. Десять – это основание десятичной системы счисления. Степень, в которую возводится десятка – это разряд цифры за минусом единицы. Так, например, 6 находится в первом разряде, поэтому она умножается на 10 (1-1) . Натуральное число в нулевой степени равно единице. Таким образом, мы умножаем 6 на 1.
Точно также производится разложение числа в двоичной системы счисления, кроме того, что основанием выступает двойка, а не десятка. Здесь до знака равенства число представлено в двоичной системе счисления, после «равно» запись идет в десятичной:
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
Результат вычислений дает десятичное число, количественно равное двоичному 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 =
= 128 + 0 + 0 + 0 + 8 + 0 + 0 + 1 = 137
То есть число 10001001 по основанию 2 равно числу 137 по основанию 10:
Почему двоичная система счисления так распространена?
Дело в том, что двоичная система счисления – это язык современной вычислительной техники.
Когда любые данные сохраняются на компьютере, они кодируются числами. С числами же компьютер выполняет операции, изменяя эти данные.
Допустим, у нас есть десятичное число 14, которое требуется сохранить в компьютерной памяти. Мы задействуем участок памяти, в данном случае состоящий как минимум из двух элементов, отводимых под разряды. В одном из разрядов мы сохраняем десятичное число 1, в другом – число 4.
Элемент памяти – это физическое устройство. Если проектировать его для хранения десятичной цифры, потребуется создать такое устройство, которое может находиться в десяти разных физических состояниях и способно переключаться между ними. Каждое из этих состояний будет соответствовать числу от 0 до 9.
Создать такой элемент памяти возможно, однако сложнее и дороже, чем создать элемент, способный находиться только в двух состояниях. Одно состояние сопоставить нулю, второе – единице. Кроме того, подобное хранение данных является более надежным.
Поэтому оказалось проще перевести число 14 в двоичную систему счисления, получив число 1110, и именно его сохранить в памяти. И пусть даже при этом будут задействованы не два, а четыре разряда, то есть четыре элементарных единиц памяти.
Перевод десятичного числа в двоичное
Одним из алгоритмов перевода десятичного числа в двоичное является деление нацело на два с последующим «сбором» двоичного числа из остатков. Переведем таким образом число 14 в двоичное представление.
Собирать остатки надо с конца, то есть с последнего деления. Получаем 1110.
Выполним то же самое для числа 77:
Собираем остатки вместе, начиная с конца: 1001101.
Проверим, выполнив обратный перевод:
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
Двоичная система счисления
Двоичная система — это один из видов позиционных систем счисления. Основание данной системы равно двум, то есть используется только два символа для записи чисел.
Немного истории
Впервые о данной системе чисел заговорил основоположник математического анализа Г.В. Лейбниц еще в XVII веке. Он доказал, что для данного множества действуют все арифметические операции: сложение, вычитание, умножение и даже деление. Однако вплоть до 30-х годов XX века данную систему не рассматривали всерьез. Но с развитием электронных устройств и ЭВМ, ученые вновь принялись к изучению данной темы, так как двоичная система отлично подходила для программирования и организации хранения данных в памяти компьютеров.
Таблица и алфавит
Алфавит двоичной системы счисления состоит всего из двух знаков: 0 и 1 . Однако это нисколько не усложняет выполнение арифметических действий.
Кроме того, двоичная система является самой удобной для быстрого перевода в другие системы счисления.
Так, чтобы перевести двоичное число в десятичное, необходимо найти значение его развернутой формы . Например:
1001102 = 1 ∙ 2 5 + 0 ∙ 2 4 + 0 ∙ 2 3 + 1 ∙ 2 2 + 1 ∙ 2 2 + 0 ∙ 2 0 = 32 + 0 + 0 + 4 + 2 + 0 = 3810
Чтобы наоборот перевести число в двоичную из десятичной, необходимо выполнить его деление на 2 с остатком, а затем записать все остатки в обратном порядке, начиная с частного:
Делимое | 38 | 19 | 9 | 4 | 2 |
---|---|---|---|---|---|
Делитель | 2 | 2 | 2 | 2 | 2 |
Частное | 19 | 9 | 4 | 2 | 1 |
Остаток | 0 | 1 | 1 | 0 | 0 |
Для перевода в другие системы необходимо:
- Перевести двоичный код в десятичный.
- Выполнить деление десятичного числа на основание той системы, в которую требуется перевести.
Однако можно воспользоваться и более быстрым и удобным способом: разделить знаки двоичного числа на условные группы слева на право (для восьмеричной — по 3 знака; для шестнадцатеричной — по 4 знака), а затем воспользоваться таблицей перевода:
Двоичная | Восьмеричная | Шестнадцатеричная |
---|---|---|
0 | 0 | 0 |
001 | 1 | 1 |
010 | 2 | 2 |
011 | 3 | 3 |
100 | 4 | 4 |
101 | 5 | 5 |
110 | 6 | 6 |
111 | 7 | 7 |
1000 | 8 | |
1001 | 9 | |
1010 | A | |
1011 | B | |
1100 | C | |
1101 | D | |
1110 | E | |
1111 | F |
110010012 = 11 001 001 = 011 001 001 = 3118
110010012 = 1100 1001 = С916
Представление двоичных чисел
В двоичной системе также существует понятие «отрицательных» чисел. И для того, чтобы провести какую-либо операцию с ними в двоичном коде, необходимо представить его в виде дополнительного кода. Запись положительного числа при этом не меняется ни для одного из кодов.
Чтобы найти дополнительный код отрицательного числа, необходимо воспользоваться его прямым и дополнительным кодами.
Прямой код предполагает приписывание единицы в начале без изменений записи:
A > 0 | Aпр = 0A | 1010112; Aпр = 01010112 |
A ≤ 0 | Aпр = 1|A| | -1010112; Aпр = 11010112 |
Для записи обратного кода цифры заменяют на противоположное значение, первую единицу от прямого кода оставляют без изменений:
A > 0 | Aобр = 0A | 1010112; Aобр = 01010112 |
A ≤ 0 | Aобр = 1 A | -1010112; Aобр = 10101002 |
Дополнительный код предполагает использование обратного кода, с той лишь разницей, что к отрицательному числу прибавляют единицу:
A > 0 | Aдоп = 0A | 1010112; Aдоп = 01010112 |
A ≤ 0 | Aдоп = 1 A + 1 | -1010112; Aдоп = 10101012 |
Применение двоичной системы в информатике
Двоичная система получила особое распространение в программировании цифровых устройств, так как она соответствует требованиям многих технических устройств, поддерживающих два состояния (есть ток, нет тока). Кроме того, является более простой и надежной для кодирования информации. Именно поэтому программный код большей части ЭВМ основан именно на двоичной системе счисления.
Перевод чисел из одной системы счисления в другую
Данный конвертер переводит числа между наиболее популярными системами счисления: десятичной, двоичной, восьмеричной, шестнадцатеричной.
Система счисления — это способ представления числа. Одно и то же число может быть представлено в различных видах. Например, число 200 в привычной нам десятичной системе может иметь вид 11001000 в двоичной системе, 310 в восьмеричной и C8 в шестнадцатеричной.
Существуют и другие системы счисления, но мы не стали включать их в конвертер из-за низкой популярности.
Для указания системы счисления при записи числа используется нижний индекс, который ставится после числа:
20010 = 110010002 = 3108 = C816
Кратко об основных системах счисления
Десятичная система счисления. Используется в повседневной жизни и является самой распространенной. Все числа, которые нас окружают представлены в этой системе. В каждом разряде такого числа может использоваться только одна цифра от 0 до 9.
Двоичная система счисления. Используется в вычислительной технике. Для записи числа используются цифры 0 и 1.
Восьмеричная система счисления. Также иногда применяется в цифровой технике. Для записи числа используются цифры от 0 до 7.
Шестнадцатеричная система счисления. Наиболее распространена в современных компьютерах. При помощи неё, например, указывают цвет. #FF0000 — красный цвет. Для записи числа используются цифры от 0 до 9 и буквы A,B,C,D,E,F, которые соответственно обозначают числа 10,11,12,13,14,15.
Перевод в десятичную систему счисления
Преобразовать число из любой системы счисления в десятичную можно следующим образом: каждый разряд числа необходимо умножить на X n , где X — основание исходного числа, n — номер разряда. Затем суммировать полученные значения.
Перевод из десятичной системы счисления в другие
Делим десятичное число на основание системы, в которую хотим перевести и записываем остатки от деления. Запишем полученные остатки в обратном порядке и получим искомое число.
Переведем число 37510 в восьмеричную систему:
Перевод из двоичной системы в восьмеричную
Для перевода в восьмеричную систему нужно разбить двоичное число на группы по 3 цифры справа налево. В последней (самой левой) группе вместо недостающих цифр поставить слева нули. Для каждой полученной группы произвести умножение каждого разряда на 2 n , где n — номер разряда.
Так же как и в первом способе разбиваем число на группы. Но вместо преобразований в скобках просто заменим полученные группы (триады) на соответствующие цифры восьмеричной системы, используя таблицу триад:
Триада | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
---|---|---|---|---|---|---|---|---|
Цифра | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Перевод из двоичной системы в шестнадцатеричную
Разбиваем число на группы по 4 цифры справа налево. Последнюю (левую) группу дополним при необходимости ведущими нулями. Внутри каждой полученной группы произведем умножение каждой цифры на 2 n , где n — номер разряда, и сложим результаты.
Также как и в первом способе разбиваем число на группы по 4 цифры. Заменим полученные группы (тетрады) на соответствующие цифры шестнадцатеричной системы, используя таблицу тетрад:
Тетрада | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Цифра | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
Перевод из восьмеричной системы в двоичную
Каждый разряд восьмеричного числа будем делить на 2 и записывать остатки в обратном порядке, формируя группы по 3 разряда двоичного числа. Если в группе получилось меньше 3 разрядов, тогда дополняем нулями. Записываем все группы по порядку, отбрасываем ведущие нули, если имеются, и получаем двоичное число.
Используем таблицу триад:
Цифра | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|---|
Триада | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
Каждую цифру исходного восьмеричного числа заменяется на соответствующие триады. Ведущие нули самой первой триады отбрасываются.
Перевод из шестнадцатеричной системы в двоичную
Аналогично переводу из восьмеричной в двоичную, только группы по 4 разряда.
Используем таблицу тетрад:
Цифра | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Тетрада | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
Каждую цифру исходного числа заменяется на соответствующие тетрады. Ведущие нули самой первой тетрады отбрасываются.
Перевод из восьмеричной системы в шестнадцатеричную и наоборот
Такую конвертацию можно осуществить через промежуточное десятичное или двоичное число. То есть исходное число сначала перевести в десятичное (или двоичное), и затем полученный результат перевести в конечную систему счисления.