Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
50-74.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
352.77 Кб
Скачать

58. Особливості складання та віднімання цілих чисел.

Сложение и вычитание чисел без знака

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

позиционных систем счисления алгоритмам. Примеры (для k =3):

0012 +1002 = 1012; 1012 – 0102 = 0112.

Ситуации, когда уменьшаемое меньше вычитаемого или когда результат суммы

не умещается в k разрядов, считаются ошибочными и должны отслеживаться

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

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

3.3.1.2 Сложение и вычитание чисел со знаком в обратном коде

Сложение в обратном коде происходит следующим образом: по обычному

алгоритму складываются все разряды, включая знаковый. Результат такого сложения

для k-разрядных наборов имеет длину k +1 (самый левый разряд результата равен

единице, если был перенос при сложении старших разрядов операндов, иначе – нулю).

Значение левого k +1-го разряда добавляется к младшему разряду результата. Получаем

k-разрядный набор, который и будет суммой двух чисел в обратном коде.

Пример (k =3): +310 +(–110

) = 0112+ 1102 = 1 0012 B 0012 +1 = 0102 = +210.

Вычитание чисел в обратном коде x – y сводится к сложению x+ (–y).

3.3.1.3 Сложение и вычитание чисел со знаком в дополнительном коде

В дополнительном коде сложение происходит так: по обычному алгоритму

складываются все разряды, включая знаковый; единица переноса в k +1-й разряд

отбрасывается (т.е. сложение по модулю 2

k

).

Пример (k =3): +310 +(–110) = 0112+ 1112 = 10102 B 0102

= +210.

При вычитании тоже действует обычный алгоритм, причем если уменьшаемое

меньше вычитаемого, к двоичному коду уменьшаемого слева приписывается единица-6-

(т.е. добавляется 2

k

) и только после этого производится вычитание (такой способ

называется вычитание по модулю 2

k

).

Пример (k =3): 110 –3 10 = 0012 – 0112

B 10012 – 0112

= 1102 = –210.

59. Представлення чисел в форматі з плаваючою точкою.

При представлении чисел с плавающей запятой часть разрядов ячейки отводится для записи порядка числа, остальные разряды - для записи мантиссы. По одному разряду в каждой группе отводится для изображения знака порядка и знака мантиссы. Для того, чтобы не хранить знак порядка, был придуман так называемый смещённый порядок, который рассчитывается по формуле 2a-1+ИП, где a - количество разрядов, отводимых под порядок.

Пример:

Если истинный порядок равен -5, тогда смещённый порядок для 4-байтового числа будет равен 127-5=122.

60. Кодування ascii та стандарт Unicode. Ta ukr koi-8.

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

Юнико́д[1] или Унико́д[2] (англ. Unicode) — стандарт кодирования символов, позволяющий представить знаки практически всех письменных языков.[3]

Стандарт предложен в 1991 году некоммерческой организацией «Консорциум Юникода» (англ. Unicode Consortium, Unicode Inc.).[4][5] Применение этого стандарта позволяет закодировать очень большое число символов из разных письменностей: в документах Unicode могут соседствовать китайские иероглифы, математические символы, буквы греческого алфавита, латиницы и кириллицы, при этом становится ненужным переключение кодовых страниц.[6]

Стандарт состоит из двух основных разделов: универсальный набор символов (англ. UCS, universal character set) и семейство кодировок (англ. UTF, Unicode transformation format). Универсальный набор символов задаёт однозначное соответствие символов кодам — элементам кодового пространства, представляющим неотрицательные целые числа. Семейство кодировок определяет машинное представление последовательности кодов UCS.

Коды в стандарте Юникод разделены на несколько областей. Область с кодами от U+0000 до U+007F содержит символы набора ASCII с соответствующими кодами. Далее расположены области знаков различных письменностей, знаки пунктуации и технические символы. Часть кодов зарезервирована для использования в будущем.[7] Под символы кириллицы выделены области знаков с кодами от U+0400 до U+052F, от U+2DE0 до U+2DFF, от U+A640 до U+A69F.

КОИ-8 (код обмена информацией, 8 битов), KOI8 — восьмибитовая ASCII-совместимая кодовая страница, разработанная для кодирования букв кириллических алфавитов.

Существует также семибитовая версия кодировки, не полностью совместимая с ASCII — КОИ-7. КОИ-7 и КОИ-8 описаны в ныне не действующем ГОСТ 19768-74.

Разработчики КОИ-8 поместили символы русского алфавита в верхней части кодовой таблицы таким образом, что позиции кириллических символов соответствуют их фонетическим аналогам в английском алфавите в нижней части таблицы. Это означает, что если в тексте, написанном в КОИ-8, убирать восьмой бит каждого символа, то получается «читаемый» текст, хотя он и написан латинскими символами. Например, слова «Русский Текст» превратились бы в «rUSSKIJ tEKST». Как побочное следствие, символы кириллицы оказались расположены не в алфавитном порядке.

Существует несколько вариантов кодировки КОИ-8 для различных кириллических алфавитов, расширяющие определённые коды (общий диапазон 192—255 с 32 русскими буквами в двух регистрах остаётся неизменным во всех вариантах). Русский алфавит описывается в кодировке KOI8-R, украинский — в KOI8-U.

KOI8-R стал фактически стандартом для русской кириллицы в 1990-х годах в юникс-подобных операционных системах и электронной почте. Автор данной кодировки (RFC1489), которая стала первой русской стандартизированной кодировкой в интернете — Андрей Чернов, в начале 1990-х годов работал в компании Демос (сеть Релком) и непосредственно участвовал в запуске и наладке первого интернет-канала между Россией и западными странами.