Система счисления - это метод записи чисел при помощи символов (цифр).
Системы счисления бывают двух видов:
- позиционными
- непозиционными
В позиционных системах значение числа зависит от позиции в которой находится цифра. Для примера, в числе 1050 цифра 5 означает количество десятков, в числе 1500 - количество сотен. Количество символов, которое имеет система счисления называется основанием. Так в десятичной системе используется 10 символов от 0 до 9, в двоичной - два символа - 0 и 1.
Самыми распространенными позиционными системами являются:
- двоичная (информатика, булева алгебра, программирование)
- десятичная (повсеместное использование)
- восьмеричная (информатика, программирование)
- шестнадцатеричная (информатика, программирование)
Любое число позиционной системы можно записать в развернутом виде. То есть в виде суммы произведений цифр на основание в определенной степени. Пример:
385,5 = 3 * 10^2 + 8 * 10^1 + 5 * 10^0 + 5 * 10^-1
1011,01 = 1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 1 * 2^0 + 0 * 2^-1 + 1 * 2^-2
Перевод числа в десятичную систему и обратно.
Расширенная запись позволяет перевести любое число из любой системы счисления, в десятичную систему. Если просуммировать записанное выше выражение, то получится:
1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 1 * 2^0 + 0 * 2^-1 + 1 * 2^-2 = 8 + 0 + 2 + 1 + 0,0 + 0,2 = 11,2
Перевод целой части десятичного числа в другую позиционную систему производится следующим образом:
- Число делится на основание новой системы.
- Полученный остаток записывается.
- Полученный от деления результат снова делится на основание новой системы
- Эти действия повторяются пока результат от деления не станет меньше основания
- Результат от деления и все остатки записываются в обратном порядке.
Для перевода дробной части необходимо умножать дробную часть на основание и записывать полученную целую часть в результат. Данную операцию останавливают либо при отсутствии дробной части, либо при достижении нужной точности.
Хранение чисел в компьютере.
Вся информация хранится в памяти компьютера в виде открытых-закрытых p-n переходах. Для программирования состояния этого перехода используется двоичная система счисления (0 - 1). Один разряд двоичного числа (один переход) называется битом. Однако отдельный бит памяти компьютера не имеет своего адреса, т.е. к нему нельзя обратиться как к самостоятельной единице. Минимальная адресуемая единица памяти называется байтом. Байт состоит из 8 бит. С помощью такого количества двоичных разрядов можно закодировать 256 различных целых чисел без знака.
Для хранения чисел со знаком (положительных и отрицательных) решено старший бит числа отводить для кодирования знака: 0 – число неотрицательное, 1- отрицательное. Тогда для хранения собственно значения (модуля) числа остается на один бит меньше. Для хранения чисел со знаком используется дополнительный код - один из способов записи чисел со знаком.
Перевод в дополнительный код производится следующим образом:
Если число > 0, то Дополнительный код = |число|
Если число < 0, то Дополнительный код = 2^K - |число|, где K - количество разрядов, выделенных для хранения числа.
Для примера, переведем число -5 в восемь битов.
2^8 - 5 = 251 = 251 = 1111 1011
Булева алгебра.
Булева алгебра — это раздел математики, посвященный логическим операциям со значениями истинности («истина» и «ложь»), обычно обозначаемыми как 1 и 0 соответственно. Основные операции булевой алгебры логики включают конъюнкцию (И), дизъюнкцию (ИЛИ) и отрицание (НЕ).
В основе булевой алгебры лежат две критически важные концепции:
- Бинарное исчисление. Этот принцип заключается в том, что информация может быть представлена в виде двух элементарных состояний, обычно обозначаемых цифрами 0 и 1. В контексте электроники это означает «выключено» и «включено». Это делает булеву алгебру идеальной для работы с цифровыми системами и электронными схемами, где вся информация кодируется и обрабатывается именно в такой форме.
- Отсутствие отрицательных значений. Данный принцип устанавливает, что в рамках булевой алгебры элементы могут либо существовать, либо не существовать. Отсутствие «серой зоны» неопределенности делает булеву алгебру предельно ясной и предсказуемой, что важно для разработки надежных логических схем и алгоритмов.
Под операциями в булевой алгебре подразумеваются математические действия, которые применяются к булевым значениям.
- Конъюнкция (И). Это операция, которую можно сравнить с функцией логического умножения. Результат конъюнкции двух утверждений истинен только тогда, когда оба утверждения истинны. В символической форме, если у нас есть две булевы переменные A и B, их конъюнкция записывается как A ∧ B. В контексте электронных схем это можно представить как серию переключателей, где ток течет только тогда, когда все переключатели замкнуты.
- Дизъюнкция (ИЛИ). Это логическое сложение, где результат операции истинен, если хотя бы одно из утверждений истинно. Она обозначается как A ∨ B и представляет цепь, в которой ток течет, если хотя бы один переключатель замкнут. В более широком смысле, дизъюнкция используется для создания условий, где действие выполняется при соблюдении хотя бы одного из нескольких критериев.
- Отрицание (НЕ). Операция, меняющая значение переменной на противоположное. Если A истинно, тогда ¬A (читается как «НЕ A») будет ложно, и наоборот. Это аналог включения переключателя, который прерывает ток в электрической цепи, изменяя ее состояние с «активно» на «неактивно».
- Исключающее ИЛИ (XOR). Операция, истинное значение которой получается, если ровно одно из утверждений истинно. Эта операция полезна в ситуациях, когда необходимо различать строго одно состояние от другого.
- Импликация (ЕСЛИ…, ТО…). Принцип, по которому истинность следствия (B) зависит от истинности условия (A). В символической записи A → B истинно, если из истинного A следует истинное B либо когда A ложно вне зависимости от B.
- Эквивалентность (ТОГДА И ТОЛЬКО ТОГДА). Это отношение между двумя утверждениями, которое говорит о том, что они имеют одинаковую истинностную оценку. В символическом виде A ↔ B показывает, что A и B или оба истинны, или оба ложны.
Побитовые операции.
Побитовые операции используют те же таблицы истинности, что и их логические эквиваленты, но совершаются между соответствующими битами чисел. В результате этих операций получается новое число. Пример:
A = 65, B = 35. Найдем чему равны X = A&B и A|B.
Кроме логических побитовых операций есть еще побитовые сдвиги. Операторы сдвига << и >> сдвигают биты в переменной влево или вправо на указанное число. При этом на освободившиеся позиции устанавливаются нули (кроме сдвига вправо отрицательного числа, в этом случае на свободные позиции устанавливаются единицы, так как числа представляются в двоичном дополнительном коде и необходимо поддерживать знаковый бит). Сдвиг влево может применяться для умножения числа на два, сдвиг вправо — для деления.
x = 7 00000111 (7)
x = x >> 1 00000011 (3)
x = x << 1 00000110 (6)
x = x << 5 11000000 (-64)
x = x >> 2 11110000 (-16)
Комментарии ()