Как выделить цифру в двоичной системе счисления
Перейти к содержимому

Как выделить цифру в двоичной системе счисления

Двоичная система счисления

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

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

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

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

0 1 10 11 100 101 110 111

Итак, число три в двоичной системе записывается как 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 в двоичное представление.

14 / 2 = 7, остаток 0 7 / 2 = 3, остаток 1 3 / 2 = 1, остаток 1 1 / 2 = 0, остаток 1

Собирать остатки надо с конца, то есть с последнего деления. Получаем 1110.

Выполним то же самое для числа 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.

Проверим, выполнив обратный перевод:

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

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

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

Например, нужно перевести число 81010 в двоичную систему:

Результат записываем в обратном порядке снизу вверх. Получается 81010 = 11001010102

Если нужно переводить в двоичную систему довольно большие числа, то лестница делений приобретает размер многоэтажного дома. И как тут собрать все единички с нулями и ни одной не пропустить?

В программу ЕГЭ по информатике входят несколько задач, связанных с переводом чисел из одной системы в другую. Как правило, это преобразование между 8- и 16-ричными системами и двоичной. Это разделы А1, В11. Но есть и задачи с другими системами счисления, как например, в разделе B7.

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

Таблица степеней числа 2:

2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 2 10
2 4 8 16 32 64 128 256 512 1024

Она легко получается умножением предыдущего числа на 2. Так, что если помните не все эти числа, остальные нетрудно получить в уме из тех, которые помните.

Таблица двоичных чисел от 0 до 15 c 16-ричным представлением:

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
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

Недостающие значения тоже нетрудно вычислить, прибавляя по 1 к известным значениям.

Перевод целых чисел

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

  1. Ищем ближайшую к 810 степень двойки, не превосходящую его. Это 2 9 = 512.
  2. Вычитаем 512 из 810, получаем 298.
  3. Повторим шаги 1 и 2, пока не останется 1 или 0.
  4. У нас получилось так: 810 = 512 + 256 + 32 + 8 + 2 = 2 9 + 2 8 + 2 5 + 2 3 + 2 1 .

Способ 1: Расставить 1 по тем разрядам, какие получились показатели у слагаемых. В нашем примере это 9, 8, 5, 3 и 1. В остальных местах будут стоять нули. Итак, мы получили двоичное представление числа 81010 = 11001010102 . Единицы стоят на 9-м, 8-м, 5-м, 3-м и 1-м местах, считая справа налево с нуля.

Способ 2: Распишем слагаемые как степени двойки друг под другом, начиная с большего.

810 =

2 9 = 1000000000 (1 и девять нулей) +
2 8 = 100000000 (1 и восемь нулей) +
2 5 = 100000 (1 и пять нулей) +
2 3 = 1000 (1 и три нуля) +
2 1 = 10 (1 и один ноль)

А теперь сложим эти ступеньки вместе, как складывают веер: 1100101010 .

Вот и всё. Попутно также просто решается задача «сколько единиц в двоичной записи числа 810?».

Ответ — столько, сколько слагаемых (степеней двойки) в таком его представлении. У 810 их 5.

Теперь пример попроще.

Переведём число 63 в 5-ричную систему счисления. Ближайшая к 63 степень числа 5 — это 25 (квадрат 5). Куб (125) будет уже много. То есть 63 лежит между квадратом 5 и кубом. Тогда подберем коэффициент для 5 2 . Это 2.

Получаем 6310 = 50 + 13 = 50 + 10 + 3 = 2 * 5 2 + 2 * 5 + 3 = 2235 .

Ну и, наконец, совсем лёгкие переводы между 8- и 16-ричными системами. Так как их основанием является степень двойки, то перевод делается автоматически, просто заменой цифр на их двоичное представление. Для 8-ричной системы каждая цифра заменяется тремя двоичными разрядами, а для 16-ричной четырьмя. При этом все ведущие нули обязательны, кроме самого старшего разряда.

Переведем в двоичную систему число 5478.

5478= 101 100 111
5 4 7

Ещё одно, например 7D6A16.

7D6A16= (0)111 1101 0110 1010
7 D 6 A

Переведем в 16-ричную систему число 7368. Сначала цифры запишем тройками, а потом поделим их на четверки с конца: 7368 = 111 011 110 = 1 1101 1110 = 1DE16 . Переведем в 8-ричную систему число C2516. Сначала цифры запишем четвёрками, а потом поделим их на тройки с конца: C2516 = 1100 0010 0101 = 110 000 100 101 = 60458 . Теперь рассмотрим перевод обратно в десятичную. Он труда не представляет, главное не ошибиться в расчётах. Раскладываем число на многочлен со степенями основания и коэффициентами при них. Потом всё умножаем и складываем. E6816 = 14 * 16 2 + 6 * 16 + 8 = 3688 . 7328 = 7 * 8 2 + 3*8 + 2 = 474 .

Перевод отрицательных чисел

Здесь нужно учесть, что число будет представлено в дополнительном коде. Для перевода числа в дополнительный код нужно знать конечный размер числа, то есть во что мы хотим его вписать — в байт, в два байта, в четыре. Старший разряд числа означает знак. Если там 0, то число положительное, если 1, то отрицательное. Слева число дополняется знаковым разрядом. Беззнаковые (unsigned) числа мы не рассматриваем, они всегда положительные, а старший разряд в них используется как информационный.

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

Итак, переведем число -79 в двоичную систему. Число займёт у нас один байт.

Переводим 79 в двоичную систему, 79 = 1001111. Дополним слева нулями до размера байта, 8 разрядов, получаем 01001111. Меняем 1 на 0 и 0 на 1. Получаем 10110000. К результату прибавляем 1, получаем ответ 10110001 . Попутно отвечаем на вопрос ЕГЭ «сколько единиц в двоичном представлении числа -79?». Ответ — 4.

Прибавление 1 к инверсии числа позволяет устранить разницу между представлениями +0 = 00000000 и -0 = 11111111. В дополнительном коде они будут записаны одинаково 00000000.

Перевод дробных чисел

Дробные числа переводятся способом, обратным делению целых чисел на основание, который мы рассмотрели в самом начале. То есть при помощи последовательного умножения на новое основание с собиранием целых частей. Полученные при умножении целые части собираются, но не участвуют в следующих операциях. Умножаются только дробные. Если исходное число больше 1, то целая и дробная части переводятся отдельно, потом склеиваются.

Переведем число 0,6752 в двоичную систему.

0 ,6752
*2
1 ,3504
*2
0 ,7008
*2
1 ,4016
*2
0 ,8032
*2
1 ,6064
*2
1 ,2128

Процесс можно продолжать долго, пока не получим все нули в дробной части или будет достигнута требуемая точность. Остановимся пока на 6-м знаке.

Получается 0,6752 = 0,101011 .

Если число было 5,6752, то в двоичном виде оно будет 101,101011 .

  • Авторские методические материалы
  • Задачи по математике
  • Задачи по физике
  • Биология
  • Подготовка к ЕГЭ
  • Задачи по химии
  • Астрономия
  • Статьи об образовании
  • История науки

Как выделить цифру в двоичной системе счисления

Скачай курс
в приложении

Перейти в приложение
Открыть мобильную версию сайта

© 2013 — 2023. Stepik

Наши условия использования и конфиденциальности

Get it on Google Play

Public user contributions licensed under cc-wiki license with attribution required

Быстро учимся считать в двоичной и шестнадцатеричной системе

Быстро учимся считать в двоичной и шестнадцатеричной системе

16.01.2015

16236

Рейтинг: 5 . Проголосовало: 11
Вы проголосовали:
Для голосования нужно авторизироваться

advertisement advertisement

Введение

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

advertisement advertisement

Переход от десятичной системы к двоичной

Первый случай – считаем от десятичной системы к двоичной. Основное, что нужно помнить в данном случае – это ряд степеней двойки (1, 2, 4, 8, 16, 32, 64, 128 и т.д.). Даже если его вы не знаете, то ничего не стоит каждое следующее число умножать на двойку. Так как младшие разряды идут справа, а старшие – слева, то будем их записывать в обратном порядке справа налево.

Тема связана со специальностями:

Таблица

Для примера будем переводить число 115. Дальше смотрим, если значение разряда помещается в число, то вычитаем из него это значение и ставим в этом разряде 1, иначе ставим 0.

Таблица

Таблица

Таблица

Таблица

Таблица

Обратный перевод еще проще – нужно просуммировать все значения разрядов, которые отмечены единичками: 64+32+16+2+1 = 115.

Переход к шестнадцатеричной системе

Видео курсы по схожей тематике:

Элементы математической логики

Элементы математической логики

Основы MongoDB

HighLoad++ 2017. Архитектуры/масштабируемость, бекенд, enterprise-системы

HighLoad++ 2017. Архитектуры/масштабируемость, бекенд, enterprise-системы

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

Таблица

В результате получили число 0х73. Главное помнить, что А = 10, B = 11, C = 12, D = 13, E = 14, F = 15.

Если есть потребность перевести десятичное число в шестнадцатеричное или наоборот, то здесь проще всего будет сначала перевести число в двоичное представление, а затем только в шестнадцатеричное или десятеричное соответственно.

В итоге мы научились быстро переводить числа из одной системы счисления в другую. Главное, что нужно помнить — степени двойки и уметь хорошо складывать и вычитать. Детальнее о машинной математике вы можете узнать во втором уроке курса C# Стартовый.

Бесплатные вебинары по схожей тематике:

Как правильно создать CV Junior разработчику

Как правильно создать CV Junior разработчику

IТ в период войны: как найти первую работу

IТ в период войны: как найти первую работу

Создание дизайна лендинга с Figma.

Создание дизайна лендинга с Figma.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *