
- •Дополнительный код для представления целых чисел со знаком Числа без знака
- •Числа со знаком
- •Свойства дополнительного кода
- •Ещё два свойства дополнительного кода
- •Перенос и переполнение
- •Почему "дополнительный"
- •Знак числа в дополнительном коде
- •Число двойной точности
- •Определение
- •[Править]Аксиомы
- •[Править]Логические операции
- •[Править]Свойства логических операций
- •Имена (идентификаторы)
- •Объявления переменных
- •Операции присваивания
- •28) Разветвляющийся вычислительный процесс (if else)
- •Блок-схема алгоритма поиска корня уравнения методом половинного деления (дихотомии)
- •34,35) Операторы цикла
- •Цикл с предусловием while
- •Цикл с постусловием repeat
- •Цикл с параметром for
- •Рекомендации по использованию циклов
- •Процедуры передачи управления
- •36) " Массивы в языке с. "
- •2. Поиск минимального и максимального элементов в массиве
- •40) Индексирование
Знак числа в дополнительном коде
В дополнительном коде числа, строго говоря, отсутствует отдельный разряд знака. То, что все отрицательные числа, представленные в дополнительном коде, имеют единицу в старшем разряде, а положительные числа -- имеют в старшем разряде ноль, является только свойством дополнительного кода. Не должно вводить в заблуждение и употребляемое определение старшего разряда как "знакового". На самом деле, знак и "абсолютная величина" в дополнительном коде связаны воедино и неразделимы.
Это понимание особенно важно при преобразовании числа со знаком, представленного, например, в одном байте (ShortInt) в двухбайтовый формат (Integer):
Исходное число ShortInt, равное минус 38 , представленное в одном байте:
1 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
Правильно преобразованное в двухбайтовый формат представление того же самого числа "минус 38" в двухбайтовом формате (Integer):
старший байт |
младший байт |
||||||||||||||
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
То есть, правильным действием при увеличении разрядности слова, в которое записывается число в дополнительном коде является "распространение знака" на добавившиеся разряды.
Число́ одина́рной то́чности (англ. Single precision, Single) — широко распространенный компьютерный формат представления вещественных чисел, занимающий в памяти 32 бита(4 байта). Как правило, под ним понимают формат числа с плавающей запятой стандарта IEEE 754.
Числа
одинарной точности с плавающей запятой
обеспечивают относительную точность
7-8 десятичных цифр в диапазоне от
до
примерно
В современных компьютерах вычисления с числами с плавающей запятой поддерживаются аппаратным сопроцессором (FPU — Floating Point Unit). Однако во многих вычислительных архитектурах нет аппаратной поддержки чисел с плавающей запятой и тогда работа с ними осуществляется программно.
Знак |
||||||||||||||||||||||||||||||||||
|
Экспонента |
Мантисса |
||||||||||||||||||||||||||||||||
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
= 0,15625 |
||
31 |
24 |
23 |
16 |
15 |
8 |
7 |
0 |
|
Для вычисления показателя степени из восьмиразрядного поля экспоненты вычитается смещение экспоненты равное 12710 = 7F16 = 011111112, (то есть, 011111002 - 011111112 = 12410 - 12710 = -310). Так как в нормализованной двоичной мантиссе целая часть всегда равна единице, то в поле мантиссы записывается только её дробная часть. Для вычисления мантиссы к единице добавляется дробная часть мантиссы из 23-х разрядного поля дробной части мантиссы 1,010000000000000000000002. Число равно произведению мантиссы со знаком на двойку в степени экспоненты = 1,012*210-310 = 1012*210-510 = 510*210-510 = 0,1562510.