Системы счисления: задачи с пошаговыми решениями

Другие названия: двоичная система · шестнадцатеричная система · перевод чисел

Бесплатные задачи по теме Системы счисления с рисунками, подсказками и подробными решениями. Каждый раз новые значения, трёх уровней: из двоичной и шестнадцатеричной в десятичную, дополнительный код, биты, диапазоны и память.

Бесплатная задачаЛёгкая
нажимайте на биты, чтобы установить их012806403201608040201

Установите биты так, чтобы 8-битный регистр содержал 0x99. Чему равно значение комбинации N в десятичной системе?

0x99

Нажмите на бит, чтобы переключить его между 0 и 1. В поле показана ваша комбинация как число без знака, и её также можно ввести. Точный ответ: целое число, без округления.

Следующая задача →

Что вы отрабатываете

  1. Лёгкаяиз двоичной и шестнадцатеричной в десятичную
  2. Средняядополнительный код
  3. Сложнаябиты, диапазоны и память

Основные формулы

Веса разрядов
двоичная 2k, восьмеричная 8k, шестнадцатеричная 16k
В десятичную
Σ dk·bk
Из десятичной
делите на основание, остатки читайте снизу вверх
Шестнадцатеричная ↔ двоичная
одна шестнадцатеричная цифра = 4 бита
Дополнительный код
инвертируйте биты и прибавьте 1

Изучите тему «Системы счисления» с нуля

1Что такое система счисления

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

В числе 352 цифра 3 означает 300, цифра 5 означает 50, а цифра 2 означает 2. Разряды справа налево стоят 1, 10, 100.

352 = 3 · 100 + 5 · 10 + 2 · 1

Компьютер хранит всё в виде переключателей, которые включены или выключены. Поэтому он считает в двоичной системе, с основанием 2, и только с цифрами 0 и 1.

Одна двоичная цифра — это бит. Группа из 8 бит — это байт.

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

Самопроверка Сколько означает цифра 7 в десятичном числе 4721?
  1. 7000
  2. 700
  3. 70
  4. 7

Ответ: 700. Справа налево разряды стоят 1, 10, 100 и 1000. Цифра 7 стоит в третьем разряде, поэтому она означает 7 · 100 = 700.

2Двоичная и шестнадцатеричная системы

В двоичной системе разряды справа налево стоят 1, 2, 4, 8, 16 и так далее. Каждый разряд стоит вдвое больше разряда справа от него.

Для 8-битного числа разряды стоят 128, 64, 32, 16, 8, 4, 2 и 1.

012806413211608041201

Чтобы прочитать двоичное число, сложите веса всех разрядов, в которых стоит 1. Для 0011 0010 это 32 + 16 + 2 = 50.

Длинные ряды битов трудно читать. Программисты часто записывают их в шестнадцатеричной системе (hex) с основанием 16.

Для шестнадцатеричной системы нужно 16 цифр. Используются 0–9, а затем буквы A = 10, B = 11, C = 12, D = 13, E = 14 и F = 15.

Шестнадцатеричные разряды справа налево стоят 1, 16, 256 и 4096. Шестнадцатеричное число часто записывают с 0x впереди, например 0x2F.

Одна шестнадцатеричная цифра — это ровно 4 бита, поэтому 0011 0010 — это 0x32: 0011 — это 3, а 0010 — это 2.

Самопроверка Чему равно 0x1A в десятичной системе?
  1. 110
  2. 11
  3. 161
  4. 26

Ответ: 26. A = 10. Разряды равны 16 и 1, поэтому 1 · 16 + 10 · 1 = 26. Запись цифр рядом (110) или их сложение (11) игнорирует веса разрядов. 161 использует разряды в неправильном порядке.

3Отрицательные числа: дополнительный код

Байт, в котором все разряды положительны, хранит числа от 0 до 255. Это называется беззнаковым представлением.

Для хранения отрицательных чисел компьютеры используют дополнительный код (two’s complement). Единственное изменение: крайний левый бит стоит −128 вместо +128.

1−12806403201608041211

Так 1000 0011 — это −128 + 2 + 1 = −125. Крайний левый бит называется знаковым: когда он равен 1, число отрицательное.

8-битное число в дополнительном коде лежит в диапазоне от −128 (1000 0000) до +127 (0111 1111).

Чтобы записать отрицательное число −x, начните с +x в двоичной системе, инвертируйте каждый бит (0 становится 1, 1 становится 0) и прибавьте 1.

Пример для −5: 5 — это 0000 0101. После инверсии получается 1111 1010. Прибавив 1, получаем 1111 1011.

Тот же набор битов, прочитанный как беззнаковый, имеет значение 256 − x. Для −5 это 251, и 1111 1011 действительно равно 128 + 64 + 32 + 16 + 8 + 2 + 1 = 251.

Самопроверка 8-битная комбинация 1111 1111 хранит число в дополнительном коде. Каково её значение?
  1. 255
  2. −127
  3. −128
  4. −1

Ответ: −1. −128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = −1. 255 — это беззнаковое прочтение. −127 получается, если считать первый бит знаком минус перед 111 1111.

4Метод по шагам

Из двоичной или шестнадцатеричной в десятичную:

  1. Запишите вес разряда под каждой цифрой: степени 2 для двоичной системы, степени 16 для шестнадцатеричной, начиная с 1 справа.
  2. В шестнадцатеричной системе замените каждую букву её значением: от A = 10 до F = 15.
  3. Умножьте каждую цифру на вес её разряда и сложите всё.

Дополнительный код:

  1. Чтобы прочитать комбинацию, припишите крайнему левому биту значение −128 (в 8 битах) и сложите веса всех разрядов с единицами.
  2. Чтобы записать −x, запишите +x в 8 битах, инвертируйте каждый бит и прибавьте 1.
  3. Беззнаковое значение этой комбинации равно 256 − x. Используйте его, чтобы проверить свои биты.

Биты, диапазоны и память:

  1. n бит дают 2ⁿ различных комбинаций.
  2. Беззнаковые они хранят от 0 до 2ⁿ − 1. В дополнительном коде они хранят от −2ⁿ⁻¹ до 2ⁿ⁻¹ − 1.
  3. Чтобы дать k объектам собственные коды, найдите наименьшее b, при котором 2b ≥ k.
  4. Для памяти умножьте число элементов на число бит на элемент, затем разделите на 8 для байтов и на 1024 для KiB.
M = ширина × высота × бит на пиксель / 8 / 1024 (KiB)

5Разобранный пример

Пройдите каждый шаг. Попробуйте предсказать следующий, прежде чем открыть его.

Разобранный пример

8-битная комбинация 1011 0110 хранит знаковое целое в дополнительном коде. Каково её значение N в десятичной системе?

1

Запишите веса разрядов

1−12806413211608141201

В дополнительном коде крайний левый разряд стоит −128. Остальные разряды: 64, 32, 16, 8, 4, 2 и 1.

2

Посмотрите на знаковый бит

Крайний левый бит равен 1, значит, число отрицательное.

3

Сложите разряды с единицами

Единицы стоят в разрядах −128, 32, 16, 4 и 2.

N = −128 + 32 + 16 + 4 + 2 = −74
4

Проверьте по беззнаковому значению

Прочитанная как беззнаковая, комбинация равна 128 + 32 + 16 + 4 + 2 = 182.

Для отрицательного числа беззнаковое значение равно 256 − x, поэтому x = 256 − 182 = 74. Снова получается N = −74.

5

Проверка инверсией

Инвертируйте 1011 0110, получите 0100 1001, затем прибавьте 1 и получите 0100 1010.

0100 1010 равно 64 + 8 + 2 = 74. Значит, исходная комбинация равна −74.

Ответ

N = −74

6Типичные ошибки

  • Забыть прибавить 1 после инверсии битов. Получится на единицу меньше.
  • Читать комбинацию в дополнительном коде как беззнаковую, например 1111 1111 как 255 вместо −1.
  • Считать знаковый бит знаком минус перед остальными битами. В дополнительном коде он стоит −128.
  • Располагать разряды в неправильном порядке. Разряд с весом 1 всегда справа.
  • Использовать A = 11 в шестнадцатеричной системе. Буквы начинаются с A = 10.
  • Путать биты и байты в задачах о памяти. Разделите число бит на 8.
Самопроверка Чему равно −5 в виде 8-битной комбинации в дополнительном коде?
  1. 0000 0101
  2. 1000 0101
  3. 1111 1010
  4. 1111 1011

Ответ: 1111 1011. 5 — это 0000 0101. Инверсия даёт 1111 1010, а прибавление 1 даёт 1111 1011. 1111 1010 — забыто прибавить 1, а 1000 0101 — это знак минус перед 5.

7Как выглядят экзаменационные задачи

  • Лёгкие: из двоичной и шестнадцатеричной в десятичную. Переведите 8-битное двоичное число или 3-значное шестнадцатеричное число в десятичное.
  • Средние: дополнительный код. Прочитайте значение знаковой 8-битной комбинации или запишите отрицательное число комбинацией и укажите её беззнаковое значение.
  • Сложные: биты, диапазоны и память. Наибольшее или наименьшее значение, которое умещается в n бит, число бит для k кодов или память, занимаемая изображением.

Пример сложной задачи: изображение 256 × 256 при 24 битах на пиксель занимает 256 · 256 · 24 / 8 / 1024 = 192 KiB.

Самопроверка Какое наименьшее число бит позволяет дать 375 объектам собственные коды?
  1. 188
  2. 512
  3. 8
  4. 9

Ответ: 9. 2⁸ = 256 кодов слишком мало, 2⁹ = 512 достаточно, значит, 9 бит. 512 — это число кодов, а не число бит.

Изучайте шаг за шагом в приложенииИзучайте шаг за шагом в приложении

Разобранные примеры

Пример 1Лёгкая
веса разрядов2256B16E1

Переведите шестнадцатеричное число 0x2BE в десятичное. Найдите N.

0x2BEA = 10 … F = 15

Найти: N

Показать подсказки
  1. Шестнадцатеричные разряды справа стоят 1, 16, 256, 4096.
  2. Замените буквы их значениями (A = 10 … F = 15), умножьте на вес разряда и сложите.
  3. 2 = 2, B = 11, E = 14.
Показать ответ и пошаговое решение

Позиционные системы счисления: каждая цифра стоит своего значения, умноженного на степень основания. В двоичной системе разряды стоят 1, 2, 4, 8, 16, …, в шестнадцатеричной 1, 16, 256, …, а A–F обозначают 10–15. В 8-битном дополнительном коде крайний левый бит стоит −128 вместо +128; так хранятся отрицательные числа.

Умножьте каждую цифру на вес её разряда

2·256 + 11·16 + 14·1 = 702

Ответ

0x2BE = 702
Пример 2Средняя
8-битный дополнительный код0−12806403201608040201

Установите биты так, чтобы они хранили −45 в 8-битном дополнительном коде. Чему равно значение комбинации U, если читать её как число без знака?

N = −458 bit

Найти: U

Показать подсказки
  1. Запишите 45 в двоичном виде, инвертируйте каждый бит, затем прибавьте 1.
  2. 45 = 0010 1101₂.
  3. Как число без знака комбинация равна 256 + N.
Показать ответ и пошаговое решение

Установка битов: каждый бит стоит степень двойки (128, 64, …, 1). Одна шестнадцатеричная цифра — это ровно четыре бита, а в 8-битном дополнительном коде крайний левый бит стоит −128. Побитовые операции работают с каждой позицией бита отдельно.

Инвертируйте и прибавьте единицу

45 = 0010 1101
инвертировано: 1101 0010
+1 → 1101 0011

Прочитайте как беззнаковое

1101 0011₂ = 256 − 45 = 211

Ответ

U = 211
Пример 3Сложная
нажимайте на биты, чтобы установить их012806403201608040201

Установите биты в 8-битный результат операции 0111 0001 >> 3. Чему равно значение результата R в десятичной системе?

0111 0001>> 3

Найти: R

Показать подсказки
  1. Сдвиг вправо на 3 перемещает каждый бит на 3 позиций вправо; биты, выходящие за правый край, теряются, а слева входят нули.
  2. Работайте с одной позицией бита за раз, слева направо.
  3. Первые четыре бита результата — 0000.
Показать ответ и пошаговое решение

Установка битов: каждый бит стоит степень двойки (128, 64, …, 1). Одна шестнадцатеричная цифра — это ровно четыре бита, а в 8-битном дополнительном коде крайний левый бит стоит −128. Побитовые операции работают с каждой позицией бита отдельно.

Бит за битом

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

0111 0001 >> 3
= 0000 1110

Значение результата

0000 1110₂ = 14

Ответ

R = 14

Вопросы и ответы

Системы счисления: что это?

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

В числе 352 цифра 3 означает 300, цифра 5 означает 50, а цифра 2 означает 2. Разряды справа налево стоят 1, 10, 100.

Системы счисления: как решать задачи шаг за шагом?

Позиционные системы счисления: каждая цифра стоит своего значения, умноженного на степень основания. В двоичной системе разряды стоят 1, 2, 4, 8, 16, …, в шестнадцатеричной 1, 16, 256, …, а A–F обозначают 10–15. В 8-битном дополнительном коде крайний левый бит стоит −128 вместо +128; так хранятся отрицательные числа.

Системы счисления: что вы тренируете?
  • Лёгкая: из двоичной и шестнадцатеричной в десятичную
  • Средняя: дополнительный код
  • Сложная: биты, диапазоны и память

В каждой задаче новые значения, поэтому вы учите метод, а не ответ. Застряли? Сначала откройте небольшую подсказку, а полное объяснение — только когда оно понадобится.

Как проходят занятия

  • В каждой задаче новые значения, поэтому вы учите метод, а не ответ.
  • Застряли? Сначала откройте небольшую подсказку, а полное объяснение — только когда оно понадобится.
  • Ваш прогресс, ошибки и сохранённые задачи остаются, поэтому перед экзаменом вы сможете всё повторить.

Темы до и после этой

Далее

Калькуляторы

Курсы с этой темой

Другие темы: Информатика

Лист заданий для печати