Ключевые слова: Перевод чисел из одной системы счисления в другую. Двоичная арифметика.

Система счисления
— это совокупность правил и символов, которые используются для представления чисел и выполнения арифметических операций. Каждая система счисления имеет своё основание (или базу), которая определяет, сколько уникальных цифр она использует для обозначения чисел.

Основание системы счисления обозначается нижним индексом после числа:

  • — для двоичной системы счисления,
  • — для троичной системы счисления,
  • — для шестиричной системы счисления,
  • — для восьмиричной системы счисления,
  • — для десятиричной системы счисления,
  • — для шестнадцатеричной системы счисления.

Основные виды систем счисления

Десятичная система (основание 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

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

ДвоичнаяДесятичнаяДвоичнаяДесятичная
00000111115
000111001018
001021011123
0011311010153
01004101100088
01015110001199
011061100100100
011171111001121
10008111110110502
100191000110.170.5
101010-1111-15

Перевод в десятичную систему

Чтобы перевести двоичное число в десятичное:

Другие примеры:

Самостоятельное задание

Переведите в десятичную систему числа: , , , , ,


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

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

  • Делим 6 на 2:

    (целая часть)

    Остаток:

  • Делим 3 на 2:

    (целая часть)

    Остаток:

  • Делим 1 на 2:

    (целая часть)

    Остаток:

  • Теперь записываем остатки в обратном порядке: , ,

Таким образом,

Самостоятельное задание

Переведите в двоичную систему числа: , , , , ,


Логические операции

В вычислениях на двоичных числах применяются логические операции, такие как AND (логическое умножение), OR (логическое сложение) и NOT (отрицание, инверсия), что является основой для выполнения арифметики на уровне машинного кода.

Для того, чтобы определить результат логических операций, строят таблицы истинности:

Таблица истинности AND и OR:
ABA AND BA OR B
0000
0101
1001
1111
Таблица истинности NOT:
ANOT A
01
10

Применение в компьютерах.

Основной единицей информации является бит, который может принимать значение 0 или 1. Таким образом значение бита определяется двоичной системой счисления. Например чёрно-белое изображение можно представить в виде последовательности битов, где каждый бит отвечает за белый или чёрный пиксель.

Группа из 8 битов образует 1 байт. Поэтому для более сложной информации, в том числе цветных изображений, используется множество битов. Тем не менее любую информацию можно представить в двоичной системе счисления.

Также двоичная система широко используется в компьютерной архитектуре, программировании, сетевых протоколах и других областях телекоммуникационных сетей. Например, адресация в IP-сетях (IP - Internet Protocol) использует двоичные числа.

Пример

Адрес компьютера в компьютерной сети (IP-адрес): 192.168.1.10

Маска подсети: 255.255.255.0

Мы хотим определить адрес сети, в которой находится компьютер.

  1. Сначала переведем IP-адрес и маску подсети в двоичную систему:

    IP-адрес 192.168.1.10:

    192 = 11000000

    168 = 10101000

    1 = 00000001

    10 = 00001010

    В двоичном виде: 11000000.10101000.00000001.00001010

    Маска подсети 255.255.255.0:

    255 = 11111111

    255 = 11111111

    255 = 11111111

    0 = 00000000

    В двоичном виде: 11111111.11111111.11111111.00000000

  2. Теперь мы можем определить сетевой адрес, выполнив побитовую операцию 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

  3. Теперь переведём полученный сетевой адрес обратно в десятичные числа:

    11000000 = 192

    10101000 = 168

    00000001 = 1

    00000000 = 0

    В результате мы получаем сетевой адрес: 192.168.1.0.

Самостоятельное задание

Определите адреса сетей в следующих примерах:

IP-адресМаска подсети
172.16.5.25255.255.255.192
10.0.0.25255.255.255.224
10.1.50.1255.255.224.0
192.168.1.14255.255.254.0
172.20.15.45255.255.0.0

Восьмеричная система (основание 8)

Восьмеричная система счисления
— это система, использующая базу 8 и состоящая из восьми уникальных символов: 0, 1, 2, 3, 4, 5, 6 и 7. Она чаще всего применяется в программировании и компьютерных науках, особенно в контексте обработки двоичных данных.

Символы восьмеричной системы:

0, 1, 2, 3, 4, 5, 6, 7

Перевод в десятичную систему

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

Например, для числа в восьмеричной системе:

Другие примеры:

Самостоятельное задание

Переведите в десятичную систему числа: , , , , ,


Перевод в двоичную систему (метод группировки разрядов)

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

Восьмеричная система счисления связана с двоичной системой соотношением:

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

ВосьмеричнаяДвоичнаяДвоичная (триады)
00000
11001
210010
311011
4100100
5101101
6110110
7111111

Приступим к алгоритму перевода:

  1. Разобьем число на отдельные цифры: , ,
  2. Преобразуем каждую цифру в триаду (с сохранением нулей слева):
  3. Объединим все двоичные представления вместе: , ,
  4. Получим итоговое число:

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

Самостоятельное задание

Переведите в двоичную систему числа: , , , , ,

Примеры использования

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

Три варианта записи прав пользователя

двоичнаявосьмеричнаясимвольнаяправа на файлправа на каталог
0000---нетнет
0011--xвыполнениечтение свойств файлов
0102-w-записьнет
0113-wxзапись и выполнениевсё, кроме получения имени файлов
1004r--чтениечтение имён файлов
1015r-xчтение и выполнениедоступ на чтение файлов/их свойств
1106rw-чтение и записьчтение имён файлов
1117rwxвсе прававсе права

Так как в 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Каждый пользователь имеет право читать и запускать на выполнение с правами владельца файла
Самостоятельное задание
  1. Напишите в восьмеричной системе права, которые позволяют владельцу изменять файл, а всем остальным только читать файл.
  2. Напишите в восьмеричной системе права, которые позволяют владельцу и его группе читать и испольнять файл, а остальным - ничего.
  3. Напишите в восьмеричной системе права, которые позволяют владельцу делать с файлом всё, что угодно, а другим пользователям читать и записывать.

Также восьмеричная система счисления позволяет сокращать запись двоичных чисел: один восьмеричный символ соответствует трём двоичным битам.


Шестнадцатеричная система (основание 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

Примеры чисел в шестнадцатеричной системе счисления

Шестнадцатеричная системаДесятичная системаШестнадцатеричная системаДесятичная система
001016
111117
221218
331319
443553
555888
666399
7764100
8879121
991F6502
A1046.870.5
B11D9BE55742
C1210B8868488
D1312FE777799
E14FFF4095
F1546.870.5

За счёт того, что символы A, B, C, D, E, F содержат в себе большие значения, запись в шестнадцатеричной системе занимает меньше места, например

Это позволяет удобнее работать с большими данными.

Примеры использования

Шестнадцатеричный код используется для определения цветов в HTML и CSS. Например, цвет красного представляется как #FF0000, где FF означает максимальную интенсивность красного и 0 - отсутствие зеленого и синего.

В некоторых языках программирования и системах, например, в ассемблере (ассемблер LC-3), адреса памяти, а также коды комманд представлены в шестнадцатеричной форме, поскольку это упрощает чтение и запись кода.

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

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

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

(остаток )

(остаток )

(остаток )

  1. Теперь читаем остатки в обратном порядке: , , .
  2. Таким образом, число

Самостоятельное задание

Переведите числа в шестнадцатеричную систему счисления: , , ,

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

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

  1. Разобьём число на отдельные цифры: , ,
  2. Переведём числа в десятичную систему счиления : , ,
  3. Умножим каждое число на 16 в соответствующей цифре позиции: , ,
  4. Сложим полученные произведения:
  5. Получаем итоговое число:

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

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

  1. Разобьем число на отдельные цифры: , ,
  2. Переведём числа в двоичную систему счиления:
  3. Объединим эти числа:
  4. Получаем итоговое число:

Самостоятельное задание

Переведите в десятичную, восьмеричную, троичную и двоичную системы числа: , , ,


Ключевые слова

Добавьте слова в свой глоссарий:

Десятичная система счисленияДвоичная система счисленияВосьмеричная система счисления
Шестнадцатеричная система счисленияОснование системы счисленияЦифра
ПозицияРазрядЦелая часть
Дробная частьДесятичная дробьАрифметические операции
СложениеВычитаниеУмножение
ДелениеПеревод чиселЦелочисленное деление
ОстатокСтепеньЛогические операции
Логическое умножениеЛогическое сложениеОтрицание
ИнверсияТаблица истинностиБит
БайтДвоичные значенияЭлектрический сигнал
Компьютерная архитектураПрограммированиеСетевые протоколы
IP-адресМаска подсетиСетевой адрес
Побитовая операцияПрава доступаФайл
КаталогВладелец файлаГруппа пользователей
ЧтениеЗаписьВыполнение
Символьная записьЦветовой кодАдрес памяти
Машинный кодЦифровое устройствоПиксель
Черно-белое изображениеЦветное изображениеОперационная система
UNIX-подобная системаИнтернет-протоколАдресация в сетях
Телекоммуникационные сетиДвоичные данныеЛатинский алфавит
Позиционная системаКомбинация цифрБазовые операции

Дополнительное (необязательное) задание. Программирование

  1. Напишите программу перевода числа из одной системы счисления в другую.
  2. Реализуйте возможностью пользователю указать основание для исходной и целевой систем счисления.