Ключевые слова: Перевод чисел из одной системы счисления в другую. Двоичная арифметика.
- Система счисления
- — это совокупность правил и символов, которые используются для представления чисел и выполнения арифметических операций. Каждая система счисления имеет своё основание (или базу), которая определяет, сколько уникальных цифр она использует для обозначения чисел.
Основание системы счисления обозначается нижним индексом после числа:
- — для двоичной системы счисления,
- — для троичной системы счисления,
- — для шестиричной системы счисления,
- — для восьмиричной системы счисления,
- — для десятиричной системы счисления,
- — для шестнадцатеричной системы счисления.
Основные виды систем счисления
Десятичная система (основание 10)
- Десятичная система счисления
- — стандартная система счисления, используемая во многих сферах человеческой деятельности: в повседневной жизни, науке, математике, финансах и др.
Символы десятичной (10) системы счисления:
0,1,2,3,4,5,6,7,8,9
В десятичной системе используются цифры от 0 до 9, которые комбинируются для образования чисел.
Например, число 47 состоит из двух цифр: 4 и 7, где 4 стоит на позиции десятков, а 7 — на позиции единиц.
В числе 584: 5 — сотни, 8 — десятки, 4 — единицы.
В числе 1358432: 1 — миллионы, 3 — сотни тысяч, 5 — десятки тысяч, 8 — тысячи, 4 — сотни, 3 — десятки, 2 — единицы.
В десятичной системе можно выполнять базовые арифметические операции (сложение, вычитание, умножение и деление). Например, сумма:
- 12 = 5 + 7,
- 77 = 33 + 44.
Десятичная система также позволяет представлять дробные числа с помощью десятичных дробей. Например, число 3.14 — это десятичная дробь, где 3 является целой частью, а 14 — дробной.
Двоичная система (основание 2)
- Двоичная система счисления
- — это система, в которой используются только два значения. Она является основой работы всех современных компьютеров и цифровых устройств, так как они оперируют с двоичными значениями на уровне электрических сигналов (включено/выключено, правда/ложь).
Символы двоичной (2) системы счисления:
0, 1
Примеры чисел в двоичной системе счисления
| Двоичная | Десятичная | Двоичная | Десятичная |
|---|---|---|---|
| 0000 | 0 | 1111 | 15 |
| 0001 | 1 | 10010 | 18 |
| 0010 | 2 | 10111 | 23 |
| 0011 | 3 | 110101 | 53 |
| 0100 | 4 | 1011000 | 88 |
| 0101 | 5 | 1100011 | 99 |
| 0110 | 6 | 1100100 | 100 |
| 0111 | 7 | 1111001 | 121 |
| 1000 | 8 | 111110110 | 502 |
| 1001 | 9 | 1000110.1 | 70.5 |
| 1010 | 10 | -1111 | -15 |
Перевод в десятичную систему
Чтобы перевести двоичное число в десятичное:
Другие примеры:
Самостоятельное задание
Переведите в десятичную систему числа: , , , , ,
Перевод из десятичной системы
Чтобы перевести число из десятичной системы счисления в двоичную, мы можем использовать метод целочисленного деления на 2. Давайте последовательно делить число на 2 и записывать остатки. Вот шаги:
Делим 6 на 2:
(целая часть)
Остаток:
Делим 3 на 2:
(целая часть)
Остаток:
Делим 1 на 2:
(целая часть)
Остаток:
Теперь записываем остатки в обратном порядке: , ,
Таким образом,
Самостоятельное задание
Переведите в двоичную систему числа: , , , , ,
Логические операции
В вычислениях на двоичных числах применяются логические операции, такие как AND (логическое умножение), OR (логическое сложение) и NOT (отрицание, инверсия), что является основой для выполнения арифметики на уровне машинного кода.
Для того, чтобы определить результат логических операций, строят таблицы истинности:
Таблица истинности AND и OR:
| A | B | A AND B | A OR B |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 1 |
Таблица истинности NOT:
| A | NOT A |
|---|---|
| 0 | 1 |
| 1 | 0 |
Применение в компьютерах.
Основной единицей информации является бит, который может принимать значение 0 или 1. Таким образом значение бита определяется двоичной системой счисления. Например чёрно-белое изображение можно представить в виде последовательности битов, где каждый бит отвечает за белый или чёрный пиксель.
Группа из 8 битов образует 1 байт. Поэтому для более сложной информации, в том числе цветных изображений, используется множество битов. Тем не менее любую информацию можно представить в двоичной системе счисления.
Также двоичная система широко используется в компьютерной архитектуре, программировании, сетевых протоколах и других областях телекоммуникационных сетей. Например, адресация в IP-сетях (IP - Internet Protocol) использует двоичные числа.
Пример
Адрес компьютера в компьютерной сети (IP-адрес): 192.168.1.10
Маска подсети: 255.255.255.0
Мы хотим определить адрес сети, в которой находится компьютер.
Сначала переведем IP-адрес и маску подсети в двоичную систему:
IP-адрес
192.168.1.10:192=11000000168=101010001=0000000110=00001010В двоичном виде:
11000000.10101000.00000001.00001010Маска подсети
255.255.255.0:255=11111111255=11111111255=111111110=00000000В двоичном виде:
11111111.11111111.11111111.00000000Теперь мы можем определить сетевой адрес, выполнив побитовую операцию
ANDмежду IP-адресом и маской подсети.11000000.10101000.00000001.00001010- IP-адрес11111111.11111111.11111111.00000000- Маска подсети11000000.10101000.00000001.00000000- Результат операцииANDОперация
AND- логическое умножение,1 AND 0 = 0,0 AND 1 = 0,0 AND 0 = 0,1 AND 1 = 1Теперь переведём полученный сетевой адрес обратно в десятичные числа:
11000000 = 19210101000 = 16800000001 = 100000000 = 0В результате мы получаем сетевой адрес:
192.168.1.0.
Самостоятельное задание
Определите адреса сетей в следующих примерах:
| IP-адрес | Маска подсети |
|---|---|
| 172.16.5.25 | 255.255.255.192 |
| 10.0.0.25 | 255.255.255.224 |
| 10.1.50.1 | 255.255.224.0 |
| 192.168.1.14 | 255.255.254.0 |
| 172.20.15.45 | 255.255.0.0 |
Восьмеричная система (основание 8)
- Восьмеричная система счисления
- — это система, использующая базу 8 и состоящая из восьми уникальных символов: 0, 1, 2, 3, 4, 5, 6 и 7. Она чаще всего применяется в программировании и компьютерных науках, особенно в контексте обработки двоичных данных.
Символы восьмеричной системы:
0, 1, 2, 3, 4, 5, 6, 7
Перевод в десятичную систему
Чтобы перевести восьмеричное число в десятичное, нужно сложить значения всех цифр, умноженные на соответствующие степени 8.
Например, для числа в восьмеричной системе:
Другие примеры:
Самостоятельное задание
Переведите в десятичную систему числа: , , , , ,
Перевод в двоичную систему (метод группировки разрядов)
Переведём число из восьмеричной системы счисления в двоичную.
Восьмеричная система счисления связана с двоичной системой соотношением:
Это значит, что каждая цифра в восьмеричной системе может быть описана с помощью трёх цифр в двоичной системе. Такой перевод не требует дополнительных вычислений кроме перевода цифр из одной системы в другую. Для этого выпишем все цифры восьмеричной системы в двоичной. Дополнительно выпишем цифры, переведённые в двоичную систему, в виде трёх цифр. Такая запись называется триадой.| Восьмеричная | Двоичная | Двоичная (триады) |
|---|---|---|
| 0 | 0 | 000 |
| 1 | 1 | 001 |
| 2 | 10 | 010 |
| 3 | 11 | 011 |
| 4 | 100 | 100 |
| 5 | 101 | 101 |
| 6 | 110 | 110 |
| 7 | 111 | 111 |
Приступим к алгоритму перевода:
- Разобьем число на отдельные цифры: , ,
- Преобразуем каждую цифру в триаду (с сохранением нулей слева):
- Объединим все двоичные представления вместе: , ,
- Получим итоговое число:
Также можно было перевести вначале число в десятичную систему счисления, а после из десятичной в двоичную.
Самостоятельное задание
Переведите в двоичную систему числа: , , , , ,
Примеры использования
Восьмеричная система используется в UNIX-подобных операционных системах для указания прав доступа к файлам.
Три варианта записи прав пользователя
| двоичная | восьмеричная | символьная | права на файл | права на каталог |
|---|---|---|---|---|
| 000 | 0 | --- | нет | нет |
| 001 | 1 | --x | выполнение | чтение свойств файлов |
| 010 | 2 | -w- | запись | нет |
| 011 | 3 | -wx | запись и выполнение | всё, кроме получения имени файлов |
| 100 | 4 | r-- | чтение | чтение имён файлов |
| 101 | 5 | r-x | чтение и выполнение | доступ на чтение файлов/их свойств |
| 110 | 6 | rw- | чтение и запись | чтение имён файлов |
| 111 | 7 | rwx | все права | все права |
Так как в UNIX-подобных системах права доступа зписываются для владельца файла/каталога, группы пользователей, в которую входит владелец и всех остальных, удобно использовать число из трёх цифр в восьмиричной системе счисления.
Примеры записей различных прав
| восьмиричная | символьная | описание |
|---|---|---|
| 400 | -r——– | Владелец имеет право чтения; никто другой не имеет права выполнять никакие действия |
| 440 | -r–r—– | Владелец и группа имеет право чтения; никто другой не имеет права выполнять никакие действия |
| 644 | -rw-r-r- | Все пользователи имеют право чтения; владелец может редактировать |
| 660 | -rw-rw—- | Владелец и группа могут читать и редактировать; остальные не имеют права выполнять никаких действий |
| 664 | -rw-rw-r– | Все пользователи имеют право чтения; владелец и группа могут редактировать |
| 666 | -rw-rw-rw- | Все пользователи могут читать и редактировать |
| 700 | -rwx—— | Владелец может читать, записывать и запускать на выполнение; никто другой не имеет права выполнять никакие действия |
| 744 | -rwxr–r– | Каждый пользователь может читать, владелец имеет право редактировать и запускать на выполнение |
| 755 | -rwxr-xr-x | Каждый пользователь имеет право читать и запускать на выполнение; владелец может редактировать |
| 777 | -rwxrwxrwx | Каждый пользователь может читать, редактировать и запускать на выполнение |
| 2555 | -r-xr-sr-x | Каждый пользователь имеет право читать и запускать на выполнение с правами группы (user group) владельца файла |
| 4555 | -r-xr-xr-x | Каждый пользователь имеет право читать и запускать на выполнение с правами владельца файла |
Самостоятельное задание
- Напишите в восьмеричной системе права, которые позволяют владельцу изменять файл, а всем остальным только читать файл.
- Напишите в восьмеричной системе права, которые позволяют владельцу и его группе читать и испольнять файл, а остальным - ничего.
- Напишите в восьмеричной системе права, которые позволяют владельцу делать с файлом всё, что угодно, а другим пользователям читать и записывать.
Также восьмеричная система счисления позволяет сокращать запись двоичных чисел: один восьмеричный символ соответствует трём двоичным битам.
Шестнадцатеричная система (основание 16)
- Шестнадцатеричная система счисления
- — это система, в которой используются 16 различных символов для представления чисел.
Она часто используется в программировании и компьютерных науках, так как позволяет более компактно представлять двоичные данные и облегчает чтение и запись больших чисел.
Первые 10 символов обозначают цифрами, как в десятичной системе счисления, далее идут буквы латинского алфавита:
A,B,C,D,E,F, обозначающие значения , , , , , соответственно.
Символы шестнадцатеричной системы:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
Примеры чисел в шестнадцатеричной системе счисления
| Шестнадцатеричная система | Десятичная система | Шестнадцатеричная система | Десятичная система |
|---|---|---|---|
| 0 | 0 | 10 | 16 |
| 1 | 1 | 11 | 17 |
| 2 | 2 | 12 | 18 |
| 3 | 3 | 13 | 19 |
| 4 | 4 | 35 | 53 |
| 5 | 5 | 58 | 88 |
| 6 | 6 | 63 | 99 |
| 7 | 7 | 64 | 100 |
| 8 | 8 | 79 | 121 |
| 9 | 9 | 1F6 | 502 |
| A | 10 | 46.8 | 70.5 |
| B | 11 | D9BE | 55742 |
| C | 12 | 10B88 | 68488 |
| D | 13 | 12FE7 | 77799 |
| E | 14 | FFF | 4095 |
| F | 15 | 46.8 | 70.5 |
За счёт того, что символы A, B, C, D, E, F содержат в себе большие значения, запись в шестнадцатеричной системе занимает меньше места, например
Примеры использования
Шестнадцатеричный код используется для определения цветов в HTML и CSS. Например, цвет красного представляется как #FF0000, где FF означает максимальную интенсивность красного и 0 - отсутствие зеленого и синего.
В некоторых языках программирования и системах, например, в ассемблере (ассемблер LC-3), адреса памяти, а также коды комманд представлены в шестнадцатеричной форме, поскольку это упрощает чтение и запись кода.
Перевод из десятичной системы.
Переведём число из десятичной системы счисления в шестнадцатеричную.
- Чтобы перевести число из десятичной системы счисления в шестнадцатеричную, нужно делить число на 16 и записывать остатки.
(остаток )
(остаток )
(остаток )
- Теперь читаем остатки в обратном порядке: , , .
- Таким образом, число
Самостоятельное задание
Переведите числа в шестнадцатеричную систему счисления: , , ,
Перевод в десятичную систему.
Переведём число в десятичную систему счисления.
- Разобьём число на отдельные цифры: , ,
- Переведём числа в десятичную систему счиления : , ,
- Умножим каждое число на 16 в соответствующей цифре позиции: , ,
- Сложим полученные произведения:
- Получаем итоговое число:
Перевод в двоичную систему.
Переведём число в двоичную систему счисления.
- Разобьем число на отдельные цифры: , ,
- Переведём числа в двоичную систему счиления:
- Объединим эти числа:
- Получаем итоговое число:
Самостоятельное задание
Переведите в десятичную, восьмеричную, троичную и двоичную системы числа: , , ,
Ключевые слова
Добавьте слова в свой глоссарий:
| Десятичная система счисления | Двоичная система счисления | Восьмеричная система счисления |
| Шестнадцатеричная система счисления | Основание системы счисления | Цифра |
| Позиция | Разряд | Целая часть |
| Дробная часть | Десятичная дробь | Арифметические операции |
| Сложение | Вычитание | Умножение |
| Деление | Перевод чисел | Целочисленное деление |
| Остаток | Степень | Логические операции |
| Логическое умножение | Логическое сложение | Отрицание |
| Инверсия | Таблица истинности | Бит |
| Байт | Двоичные значения | Электрический сигнал |
| Компьютерная архитектура | Программирование | Сетевые протоколы |
| IP-адрес | Маска подсети | Сетевой адрес |
| Побитовая операция | Права доступа | Файл |
| Каталог | Владелец файла | Группа пользователей |
| Чтение | Запись | Выполнение |
| Символьная запись | Цветовой код | Адрес памяти |
| Машинный код | Цифровое устройство | Пиксель |
| Черно-белое изображение | Цветное изображение | Операционная система |
| UNIX-подобная система | Интернет-протокол | Адресация в сетях |
| Телекоммуникационные сети | Двоичные данные | Латинский алфавит |
| Позиционная система | Комбинация цифр | Базовые операции |
Дополнительное (необязательное) задание. Программирование
- Напишите программу перевода числа из одной системы счисления в другую.
- Реализуйте возможностью пользователю указать основание для исходной и целевой систем счисления.