author | title |
---|---|
Беднов Г.А. |
Практическое занятие 2 |
- Но главное, а что значит "закодировать число"?
-
Это значит "взвесить" число на "весах"!
-
с одной стороны весов: груз
-
с другой стороны - гирьки 1, 2, 4, 8, ...,
$2^N$ -
"1" положить гирьку, а "0" --- убрать;
-
основание: 3
-
цифры: -1, 0, +1
-
примеры: ++ (
$4_{10}$ ), +- ($+3-1=2$ ), -+ ($-3+1=-2$ ) -
для симм. систем счисления "гирьки" на весах можно класть на ту же чашу, что и сам груз;
-
минимальная доступная симметричная позиционная система счисления
Число
+------------+------------+-----------------+
| x | 1+2+16 |<1, 4, 8, ≥32|
-
+ + |
||
|
+------------+------------+-----------------+
| x+9 | 27+1 |<1, 3, ≥81|
-
+ + |
||
|
+----------------+-------------------------+ |Двоичная |Троичная симм. | +================+=========================+ |напряжение | ток? момент? | +----------------+-------------------------+ |привычна | инопланетянин | +----------------+-------------------------+ |экономна |в теории, | | | производительная | +----------------+-------------------------+ |минимальная | минимальная симметричная| +----------------+-------------------------+ |О.К., П.К., Д.К.|нативная поддержка минуса| +----------------+-------------------------+
-
unsigned
-типы в C++ (unsigned int, unsigned char, unsigned long int
, ...); -
все биты --- под двоичные цифры;
-
диапазон от 0 до
$2^k$ ; -
за 255 следует... снова 0 (цикличность значений)
на примере ячейки 1 байт
1111.1111
0000.0001
------------
(1)0000.0000
255 + 1 = 0 (CF=1)
Когда емкость ячейки исчерпана
- нужно сделать "перенос" в/из ячейки старше,
включается CF=1
- Делается ли перенос автоматически? Нет, просто дается флаг
-
Как вообще кодировать знак числа, если доступны только цифры?
-
Как отдельно учесть что мы в ячейке?
-
прямой код
-
появился первым
-
первый бит инвертируется, остальные как были
-
понятен, но неудобен для схемотехники
-
устарел, кроме как для кодирования дробных (см.дальше)
-
обратный код
-
инвертируются все биты
-
универсальнее чем прямой, но тоже устарел
-
обычно не используется совсем
-
дополнительный код
-
обратный код + 1
-
цикличен; что сложить 2+(-3), что вычесть 2-3
-
доминирует при кодировании целых чисел со знаком
7+1 = 0111 + 0001 = 1000
для ниббла в доп.коде
Математический блокбастер
"7 + 1 = -8"
от создателей 127 + 1 = -128 (для байта)
- если мы "задеваем" старший бит, будет overflow flag (флаг переполнения)
Можно обойтись без них:
- рубли (просто пересчитай на копейки)
- фиксированная точность (две, три цифры после запятой)
Когда надо:
- разнородные величины (число Авогадро
$6.022 140 76⋅10^{23}$ , атомная масса водорода$1.67⋅10^{−24}$ )
-
float, double, long double
из C++ -
Number
из JavaScript -
один бит - на знак
-
один байт - на порядок
-
остальное - на мантиссу
+----------------+------+---------------------+
|обозначение |имя | варианты обозначений|
+================+======+=====================+
|
-
Считаем что есть высказывания
-
Они истинны или ложны
-
Наша задача - узнать истину
-
Давайте посчитаем!
-
Ограничим алгебру сложением и умножением двух чисел
Первоначально, Буль сделал "сложение" как исключающее ИЛИ:
- Действительно, именно она ближе к действию сложения для двоичной системы счисления
Но...
- дело в том, что дизъюнкция --- это MAX(), а конъюнкция это MIN()
заменив все
- 0 на 1,
- 1 на 0
- прямые термины на отрицания,
- отрицания на прямые термины
- ИЛИ на И
- И на ИЛИ
получите то же самое выражение! (дуальность)
Из-за этого булева Алгебра "симметрична"
-
А что если смысл не в высказываниях, а в признаках?
-
пусть X - это определение, разделяющее все предметы в мире на x и x'
-
в таком случае, конъюнкция --- это создание более строгого определения из двух других
-
а дизъюнкция --- менее строгого
Пусть вкусное (В), полезное (П)
По закону де Моргана,
Значит, невкусное и неполезное есть человек не захочет точно.
- 1, если найден предмет с признаком x
- 0, если доказано, что предмета x не будет
- i, если неизвестно
"Не бывает X без Y"
Вместе с условием сосуществования противоположностей составляет основу отношения следования
- определений следования - множество, возможно что это правильное.
Можно дедуктивно решать задачи!