Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
инфа теория передел.docx
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
447.59 Кб
Скачать

24.Кодирование символов (ascii, utf, utf-8, utf-16)

Кодировка описывает набор правил, в соответствии с которыми работают кодировщик и декодер.

Кодировка

Класс

Описание

Преимущества / недостатки

ASCII

ASCIIEncoding

Кодирует ограниченный диапазон символов, используя семь нижних битов байта.

Так как эта кодировка поддерживает только значения символов от U+0000 до U+007F, то во многих случаях она не отвечает требованиям международных приложений.

UTF-7

UTF7Encoding

Представляет символы в виде последовательностей 7-разрядных символов ASCII. Символы, отличные от ASCII Юникода, представлены в виде escape-последовательности символов ASCII.

UTF-7 поддерживает протоколы, например протоколы электронной почты и групп новостей. Однако формат UTF-7 недостаточно безопасен или надежен. В некоторых случаях изменение одного бита может привести к существенному изменению интерпретации всей строки UTF-7. В других случаях для кодировки одного и того же текста могут использоваться разные строки UTF-7. В последовательностях, содержащих отличные от ASCII символы, формат UTF-7 требует больше пространства, чем UTF-8, и процесс кодирования/декодирования выполняется медленнее. Следовательно, при возможности лучше использовать UTF-8 вместо UTF-7.

UTF-8

UTF8Encoding

Представляет каждую кодовую точку Юникода в виде последовательности от одного до четырех байтов.

UTF-8 поддерживает 8-разрядный размер данных и хорошо работает со многими операционными системами. Для диапазона символов ASCII UTF-8 идентичен кодировке ASCII и представляет более широкий набор символов. Однако для китайской, японской, корейской письменности UTF-8 может потребовать три байта для каждого символа, создавая, таким образом, данные большего размера, чем UTF-16. Обратите внимание, что иногда увеличение размера для китайских, японских и корейских языков объясняется объемом данных ASCII, например тегами HTML.

UTF-16

UnicodeEncoding

Представляет каждую кодовую точку Юникода в виде последовательности из одного или двух 16-разрядных целых чисел.Наиболее распространены символы Юникода требуют только одной кодовой точки UTF-16, хотя дополнительные символы Юникода (U+10000 и далее) требуют двух замещающих кодовых точек UTF-16. Поддерживается как прямой порядок байтов, так и обратный порядок байтов.

Кодировка UTF-16 используется средой CLR для представления значений Char иString, также она используется ОС Windows для представления значений WCHAR.

2. Булева Алгебра.

1. Операции булевой алгебры.

Категория

Выражение

Описание

Логическое AND

x & y

Целочисленное поразрядное AND, логическое AND

Логическое исключающее XOR

x ^ y

Целочисленное поразрядное исключающее XOR, логическое исключающее XOR

Логическое OR

x | y

Целочисленное поразрядное OR, логическое OR

Условное AND

x && y

Вычисляет y только только если x имеет значение true

Условное OR

x || y

Вычисляет y только только если x имеет значение false

Объединение нулей

x ?? y

Равно y, если x = null, в противном случае равно x

Условное

x ? y : z

Равно y, если x имеет значение true, z если x имеет значение false

2. Упростить логическое выражение.

1. Закон двойного отрицания:

А = ¬(¬А)

Двойное отрицание, исключает отрицание.

2. Переместительный (коммутативный) закон:

  • для логического сложения: А V B = B v A;

  • для логического умножения: А & B = B & A.

Результат операции над высказываниями не зависит от порядка высказывания.

3. Сочетательный (ассоциативный) закон:

  • для логического сложения: (A V B) V C = A V(B V C);

  • для логического умножения: (A & B) & C = A & (B & C).

При одинаковых знаках скобки можно ставить произвольно или вообще опускать.

4. Распределительный (дистрибутивный) закон:

  • для логического сложения: (A V B) & C = (A & C) V (B & C);

  • для логического умножения: (A & B) V C = (A V C) & (B V C).

Общее высказывание выносим за скобку.

5. Законы общей инверсии (законы де Моргана):

  • для логического сложения: ¬ (A V B) = (¬A) & (¬B);

  • для логического умножения: ¬(A & B) = (¬A) V (¬B).

Обратите внимание на смену выражения!

6. Закон идемпотентности (от латинских слов idem — тот же

самый и potens —сильный; дословно — равносильный):

  • для логического сложения: A V A = A;

  • для логического умножения: A & A = A.

Закон означает отсутствие показателей степени.

7. Закон исключения констант:

  • для логического сложения: A V 1 = 1; A V 0 = A;

  • для логического умножения: A & 1 = A; A & 0 = 0.

8. Закон противоречия:

A & (¬A) = 0.

Невозможно чтобы противоречащие высказывания были одновременно истинными.

9. Закон исключения третьего:

A V (¬A) = 1.

Из двух противоречащих высказываний об одном и том же предмете одно всегда истинно, а второе — ложно, третьего не дано.

10. Закон поглощения:

  • для логического сложения: (A & B) v A = A;

  • для логического умножения: (A v B) & A = A.

11. Закон исключения (склеивания):

  • для логического сложения: (A & B)v(¬A & B) = B;

  • для логического умножения: (A v B) & (¬A v B) = B.

12. Закон контрапозиции (правило перевертывания):

A → B = (¬A) → (¬B)

Если некая посылка A влечёт некое следствие B, то отрицание этого следствия (то есть «не B») влечёт отрицание этой посылки

3. Составить таблицу истинности.

Таблица истинности для логического ИЛИ - сложение

a

b

a + b

0

0

0

0

1

1

1

0

1

1

1

1

Таблица истинности для логического И - умножение

a

b

a * b

0

0

0

0

1

0

1

0

0

1

1

1

Таблица истинности для равносильности ==

a

b

a == b

true

true

true

true

false

false

false

false

true

false

true

false

Таблица истинности для отрицания !

a

!a

true

false

false

true