Модифицированные обратный и дополнительный коды
Переполнение разрядной сетки может привести к переносу единицы в знаковый разряд, что приведет к неправильному результату. Положительное число, получившееся в результате арифметической операции, может восприниматься как отрицательное, так как в знаковом разряде появится «1», и наоборот.
Пример
Х и Y – коды положительных чисел, но в процессе сложения в знаковом разряде появилась «1», что означает код отрицательного числа. Чтобы распознать переполнение разрядной сетки, вводятся модифицированные коды.
Модифицированный обратныйкодхарактеризуется тем, что под знак числа отводится не один, а два разряда. Форма записи чисел в модифицированном обратном коде выглядит следующим образом:
• для положительного числа;
• для отрицательного числа
В модифицированных обратном и дополнительном кодах под знак числа отводится не один, а два разряда: «00» соответствует знаку «+», «11» – знаку «-». Любая другая комбинация («01» или «10»), получившаяся в знаковых разрядах, является признаком переполнения разрядной сетки. Сложение чисел в модифицированных кодах ничем не отличается от сложения в обычных обратном и дополнительном кодах.
Пример
Даны два числа: Х= 101001 и Y= -11010. Сложить их в дополнительном и модифицированном дополнительном кодах.
Обычная запись | Х= + 0101001 | Y= - 0011010 |
Обратный код | Хобр= 00101001 | Yобр= 11100101 |
Модифицированный обратный код | Хмобр= 00101001 | Yмобр= 11100101 |
Дополнительный код | Хдоп= 00101001 | Yдоп= 11100110 |
Модифицированный дополнительный код | Хмдоп= 00101001 | Yмдоп= 11100110 |
Выполним сложение:
Переполнение не наблюдается (в знаковых разрядах «00»). Результаты, полученные в обычном и модифицированном кодах, совпадают(X+ Y=1111).
Задания для самостоятельной работы
1. Запишите числа X и Y в прямом, обратном и дополнительном кодах. Выполните сложение в обратном и дополнительном кодах. Результат переведите в прямой код. Полученный результат проверьте, используя правила двоичной арифметики.
2. Измените число Y, добавив в конец числа две единицы «11». Сложите полученные числа в модифицированном обратном и модифицированном дополнительном кодах. Результат переведите в прямой код. Выполните проверку сложения, используя правила двоичной арифметики.
Вариант | Числа X и Y | Вариант | Числа X и Y |
1. | X= - 100101 Y=11101 | 2. | X= - 101101 Y=1101 |
3. | X= - 110101 Y=11101 | 4. | X= - 1101111 Y=10101 |
5. | X= - 1000111 Y=11101 | 6. | X= - 1110001 Y=10011 |
7. | X= - 1010001 Y=10011 | 8. | X= - 1000011 Y=10011 |
9. | X= - 1101001 Y=10111 | 10. | X= - 1010001 Y=1111 |
11. | X= - 101001 Y=10111 | 12. | X= - 1010111 Y=11100 |
13. | X= - 110101 Y=1111 | 14. | X= - 101111 Y=1101 |
15. | X= - 110101 Y=10011 | 16. | X= - 1001011 Y=10101 |
17. | X= - 100011 Y=10011 | 18. | X= - 1010001 Y=1011 |
19. | X= - 110001 Y=10111 | 20. | X= - 1000111 Y=11111 |
21. | X= - 111001 Y=1110 | 22. | X= - 100001 Y=1111 |
23. | X= - 1011101 Y=10111 | 24. | X= - 1111000 Y=101111 |
25. | X= - 1100000 Y=1111 | 26. | X= - 10101 Y=1101 |
Контрольные вопросы
1. Что понимают под прямым кодом числа?
2. Как образуется обратный код целого положительного числа ?
3. Как образуется обратный код целого отрицательного числа?
4. Каков алгоритм сложения чисел в прямом коде?
5. Каков алгоритм сложения чисел в обратном коде?
6. Чем характеризуется модифицированный обратный код?
Лабораторная работа №5
Представление вещественных чисел в памяти компьютера. Арифметические операции над числами
С плавающей запятой
Цель работы. Изучить логические операции и основные равносильности алгебры логики, научиться составлять таблицы истинности для формул алгебры логики и преобразовывать формулы, используя основные равносильности и правила поглощения.
Рассмотрим представление величин с плавающей точкой.
Система вещественных чисел в математических вычислениях предполагается непрерывной и бесконечной, т.е. не имеющей ограничений на диапазон и точность представления чисел. Однако в компьютерах числа хранятся в регистрах и ячейках памяти с ограниченным количеством разрядов. Вследствие этого система вещественных чисел, представимых в машине, является дискретной (прерывной) и конечной.
При написании вещественных чисел в программах вместо привычной запятой принято ставить точку. Для отображения вещественных чисел, которые могут быть как очень маленькими, так и очень большими, используется форма записи чисел с порядком основания системы счисления. Например, десятичное число 1.25 в этой форме можно представить так:
1.25 . 100 = 0.125 . 101 = 0.0125 . 102 = ...
или так:
12.5 . 10-1 = 125.0 . 10-2 = 1250.0 . 10-3 = ... .
Любое число N в системе счисления с основанием q можно записать в виде N = M . qp, где M – множитель, содержащий все цифры числа (мантисса), а p – целое число, называемое порядком. Такой способ записи чисел называется представлением числа с плавающей точкой.
Если “плавающая” точка расположена в мантиссе перед первой значащей цифрой, то при фиксированном количестве разрядов, отведённых под мантиссу, обеспечивается запись максимального количества значащих цифр числа, то есть максимальная точность представления числа в машине. Из этого следует:
Мантисса должна быть правильной дробью, у которой первая цифра после точки (запятой в обычной записи) отлична от нуля: 0.12<= |M|<1. Если это требование выполнено, то число называется нормализованным.
Мантиссу и порядок q-ичного числа принято записывать в системе с основанием q, а само основание – в десятичной системе. Примеры нормализованного представления:
Десятичная система | Двоичная система |
753.15 = 0.75315 . 103 | –101.01 = –0.10101 . 211 (порядок 112 = 310) |
– 0.000034 = – 0.34 . 10-4 | 0.000011 = 0.11 . 2-100 (порядок –1002 = –410) |
Вещественные числа в компьютерах различных типов записываются по-разному, тем не менее, все компьютеры поддерживают несколько международных стандартных форматов, различающихся по точности, но имеющих одинаковую структуру следующего вида:
Здесь порядок n-разрядного нормализованного числа задается в так называемой смещенной форме: если для задания порядка выделено k разрядов, то к истинному значению порядка, представленного в дополнительном коде, прибавляют смещение, равное (2k-1 – 1). Например, порядок, принимающий значения в диапазоне от –128 до +127, представляется смещенным порядком, значения которого меняются от 0 до 255.
Использование смещенной формы позволяет производить операции над порядками, как над беззнаковыми числами, что упрощает операции сравнения, сложения и вычитания порядков, а также упрощает операцию сравнения самих нормализованных чисел.
Чем больше разрядов отводится под запись мантиссы, тем выше точность представления числа. Чем больше разрядов занимает порядок, тем шире диапазон от наименьшего отличного от нуля числа до наибольшего числа, представимого в машине при заданном формате.
Персональный компьютер позволяет работать со следующими действительными типами (диапазон значений указан по абсолютной величине):
Тип данных | Размер, байт | Мантисса, бит | Порядок, бит | Сдвиг порядка | Диапазон модулей |
Single | 3,4·10-38..3,4·1038 | ||||
Double | 1,7·10-308..1,7·10308 | ||||
Extended | 3,4·10-4932..3,4·104932 |
Покажем преобразование действительного числа для представления его в памяти ЭВМ на примере величины типа Double.
Как видно из таблицы, величина этого типа занимает в памяти 8 байт. На рисунке показано, как здесь представлены поля мантиссы и порядка:
S | Смещенный порядок | Мантисса |
Можно заметить, что старший бит, отведенный под мантиссу, имеет номер 51, т.е. мантисса занимает младшие 52 бита. Черта указывает здесь на положение двоичной запятой. Перед запятой должен стоять бит целой части мантиссы, но поскольку она всегда равна единице, здесь данный бит не требуется и соответствующий разряд отсутствует в памяти (но он подразумевается). Значение порядка храниться здесь не как целое число, представленное в дополнительном коде. Для упрощения вычислений и сравнения действительных чисел значение порядка в ЭВМ хранится в виде смещенного числа, т.е. к настоящему значению порядка, перед записью его в память, прибавляется смещение. Смещение выбирается так, чтобы минимальному значению порядка соответствовал нуль.
Например, для типа Double порядок занимает 11 бит, поэтому смещение равно (211-1-1)=1023(10) = 1111111111(2). Наконец, бит с номером 63 указывает на знак числа.
Таким образом, из вышесказанного вытекает следующий алгоритм для получения представления действительного числа в памяти ЭВМ:
1. перевести модуль данного числа в двоичную систему счисления;
2. нормализовать двоичное число, т.е. записать в виде М*2p, где М - мантисса (ее целая часть равна 1(2)) и р - порядок, записанный в десятичной системе счисления;
3. прибавить к порядку смещение и перевести смещенный порядок в двоичную систему счисления;
4. учитывая знак заданного числа (0 - положительное; 1 - отрицательное), выписать его представление в памяти ЭВМ.
Пример. Запишем код числа -312,3125.
1. Двоичная запись модуля этого числа имеет вид 100111000,0101.
2. Имеем 100111000,0101 = 1,001110000101*28.
3. Получаем смещенный порядок 8 + 1023 = 1031. Далее имеем 1031(10) = 10000000111(2).
4. Окончательно
Очевидно, что более компактно полученный код стоит записать следующим образом: C073850000000000(16).
Другой пример иллюстрирует обратный переход от кода действительного числа к самому числу.
Пример. Пусть дан код 3FEC600000000000(16) или
1. Прежде всего, замечаем, что это код положительного числа, поскольку в разряде с номером 63 записан нуль.
Получим порядок этого числа. 01111111110(2) = 1022(10).
1022 - 1023 = -1.
2. Число имеет вид 1,1100011*2-1 или 0,11100011.
Переводом в десятичную систему счисления получаем 0,88671875
Пример. Представить число -25,625 в машинном виде с использованием 4 байтового представления (где 1 бит отводится под знак числа, 8 бит - под смещённый порядок, остальные биты - под мантиссу).
1. Двоичная запись модуля этого числа имеет вид 100011,101.
2. Имеем 100011,101 = 1,00011101 *25.
3. Найдем смещенный порядок. Для этого находим смещение
(28-1-1)=127(10)
5 + 127 = 132.
Далее имеем 132(10) = 10000100(2).
4. Окончательно
Очевидно, что более компактно полученный код стоит записать следующим образом: C18Е8000(16).
Пример. Сложить двоичные нормализованные числа 0.10111 2-1 и 0.11011 210.
Сначала посмотрим аналогичный пример сложения нормализованных десятичных чисел в формате с плавающей точкой (возьмем произвольные значения):
0.56*10-1=0.056 и 0.7842*102=78.42
Должна получиться сумма = 78.476
Разность порядков слагаемых здесь равна трем, поэтому перед сложением мантисса первого (меньшего) числа сдвигается на три разряда вправо, порядок этого числа увеличивается на 3, получаем 0.00056*102=0.056.
Замечание. При выравнивании порядков необходимо сдвигать мантиссу меньшегочисла, если приводить большее число 0.7842*102 к порядку -1, то получится число с целой частью, большей 0 – 784.2*10-1, которое невозможно будет сохранить в памяти.
В результате
0.00056*102
0.78420*102
0.78476*102
По аналогии складываем двоичные нормализованные числа 0.10111*2-1 и 0.11011*210. Разность порядков слагаемых здесь равна трем, поэтому перед сложением мантисса первого (меньшего) числа сдвигается на три разряда вправо, порядок этого числа увеличивается на 3, получаем 0.00011011*210.
0.00010111*210
0.11011000*210
0.11101111*210
Пример. Выполнить вычитание двоичных нормализованных чисел 0.10101*210 и 0.11101*21.
Решение:разность порядков уменьшаемого и вычитаемого здесь равна единице, поэтому перед вычитанием мантисса второго числа сдвигается на один разряд вправо:
0.101010*210
0.011101*210
0.001101*210
Важно: результат получился ненормализованным, поэтому его мантисса сдвигается влево на два разряда с соответствующим уменьшением порядка на две единицы: 0.1101*20.
Пример.Выполнить умножение двоичных нормализованных чисел: 0.11101* 2101 и 0.1001* 211.
Решение:
0.11101* 2101 * 0.1001* 211 =0.11101*0.1001* 2(101+11) = 0.100000101* 21000.
Пример.Выполнить деление двоичных нормализованных чисел: 0.1111*2100 и 0.101*211.
Решение:
0.1111*2100 / 0.101*211 = (0.1111 / 0.101)*2(100-11) = 1.1* 21 = 0.11*210
Задания для самостоятельной работы
Вариант 1
1. Запишите код действительного числа, интерпретируя его как величину типа Double.
а) 578,375; б) -786,375.
2. Дан код величины типа Double. Преобразуйте его в число.
а) 408Е130000000000; б) С077880000000000.
3. Представить число -25,625 в машинном виде с использованием 4 байтового представления (где 1 бит отводится под знак числа, 8 бит - под смещённый порядок, остальные биты - под мантиссу).
4. Заданы два числа А=0.001101*2111 и В=0.010011*210. Вычислить сумму, разность и произведение этих чисел. Результат привести к нормализованной форме.
Вариант 2
1. Запишите код действительного числа, интерпретируя его как величину типа Single.
а) -363,15625; б) -487,15625.
2. Дан код величины типа Double. Преобразуйте его в число.
а) С075228000000000; б) 408В9В0000000000.
3. Представить число -52,45 в машинном виде с использованием 4 байтового представления (где 1 бит отводится под знак числа, 8 бит - под смещённый порядок, остальные биты - под мантиссу).
4. Заданы два числа А=0.0010001*2110 и В=0.01001*210. Вычислить сумму, разность и произведение этих чисел. Результат привести к нормализованной форме.
Вариант 3
1. Запишите код действительного числа, интерпретируя его как величину типа Double.
а) 334,15625; б) -367,15625
2. Дан код величины типа Double. Преобразуйте его в число.
а) С07С08С000000000; б) С0811В0000000000.
3. Представить число -52,45 в машинном виде с использованием 4 байтового представления (где 1 бит отводится под знак числа, 8 бит - под смещённый порядок, остальные биты - под мантиссу).
4. Заданы два числа А=0.0010001*2110 и В=0.01001*210. Вычислить сумму, разность и произведение этих чисел. Результат привести к нормализованной форме.
Вариант 4
1. Запишите код действительного числа, интерпретируя его как величину типа Single.
а) 215,15625; б) -143,375.
2. Дан код величины типа Double. Преобразуйте его в число.
а) С071760000000000; б) 407FF28000000000
3. Представить число -78,123 в машинном виде с использованием 4 байтового представления (где 1 бит отводится под знак числа, 8 бит - под смещённый порядок, остальные биты - под мантиссу).
4. Заданы два числа А=0.111101*2101 и В=0.10111*211. Вычислить сумму, разность и произведение этих чисел. Результат привести к нормализованной форме.
Вариант 5
1. Запишите код действительного числа, интерпретируя его как величину типа Double.
а) -900,546875; б) -834,5.
2. Дан код величины типа Double. Преобразуйте его в число.
а) 407С060000000000; б) С0610С0000000000
3. Представить число -15,123 в машинном виде с использованием 2 байтового представления (где 1 бит отводится под знак числа, 5 бит - под смещённый порядок, остальные биты - под мантиссу).
4. Заданы два числа А=0.001100101*2111 и В=0.011011*211. Вычислить сумму, разность и произведение этих чисел. Результат привести к нормализованной форме.
Вариант 6
1. Запишите код действительного числа, интерпретируя его как величину типа Single.
а) -969,15625; б) -434,15625.
2. Дан код величины типа Double. Преобразуйте его в число.
a) C082B30000000000; б) С086ЕВ0000000000.
3. Представить число -25,25 в машинном виде с использованием 2 байтового представления (где 1 бит отводится под знак числа, 5 бит - под смещённый порядок, остальные биты - под мантиссу).
4. Заданы два числа А=0.0011101*2110 и В=0.010011*210. Вычислить сумму, разность и произведение этих чисел. Результат привести к нормализованной форме.
Вариант7
1. Запишите код действительного числа, интерпретируя его как величину типа Double.
а) -802,15625; б) -172,375.
2. Дан код величины типа Double. Преобразуйте его в число.
а) С085ЕВ0000000000; б) C07D428000000000
3. Представить число -10,75 в машинном виде с использованием 3 байтового представления (где 1 бит отводится под знак числа, 5 бит - под смещённый порядок, остальные биты - под мантиссу).
4. Заданы два числа А=0.00110101*2111 и В=0.01010011*2110. Вычислить сумму, разность и произведение этих чисел. Результат привести к нормализованной форме.
Вариант 8
1. Запишите код действительного числа, интерпретируя его как величину типа Single.
а) 635,5; б) -555,15625
2. Дан код величины типа Double. Преобразуйте его в число.
а) С07848С000000000; б) С085394000000000
3. Представить число -32,125 в машинном виде с использованием 3 байтового представления (где 1 бит отводится под знак числа, 6 бит - под смещённый порядок, остальные биты - под мантиссу).
4. Заданы два нормализованных числа А=0.0011101*2110 и В=0.0100011*2101. Вычислить сумму, разность и произведение этих чисел. Результат привести к нормализованной форме.
Вариант 9
1. Запишите код действительного числа, интерпретируя его как величину типа Double.
а) 110,546875; б) -743,375.
2. Дан код величины типа Double. Преобразуйте его в число.
а) С08В794000000000; б) 407СВ28000000000.
3. Представить число 40,25 в машинном виде с использованием 3 байтового представления (где 1 бит отводится под знак числа, 8 бит - под смещённый порядок, остальные биты - под мантиссу).
4. Заданы два числа А=0.010101*2111 и В=0.011011*210. Вычислить сумму, разность и произведение этих чисел. Результат привести к нормализованной форме.
Вариант 10
1. Запишите код действительного числа, интерпретируя его как величину типа Single.
а) -141,375; б) 141,375.
2. Дан код величины типа Double. Преобразуйте его в число.
а) 408ЕА14000000000; б) С07В128000000000.
3. Представить число -25,25 в машинном виде с использованием 5 байтового представления (где 1 бит отводится под знак числа, 6 бит - под смещённый порядок, остальные биты - под мантиссу).
4. Заданы два числа А=0.0110001*2110 и В=0.00101011*211. Вычислить сумму, разность и произведение этих чисел. Результат привести к нормализованной форме.
Вариант 11
1. Запишите код действительного числа, интерпретируя его как величину типа Double.
а) 576,375; б) -99,375.
2. Дан код величины типа Double. Преобразуйте его в число.
а) 40864В0000000000; б) С047140000000000.
3. Представить число -28,125 в машинном виде с использованием 8 байтового представления (где 1 бит отводится под знак числа, 4 бита - под смещённый порядок, остальные биты - под мантиссу).
4. Заданы два числа А=0.0101101*2111 и В=0.00110011*2110. Вычислить сумму, разность и произведение этих чисел. Результат привести к нормализованной форме.
Вариант 12
1. Запишите код действительного числа, интерпретируя его как величину типа Single.
a) -796,15625; 6) 325,15625.
2. Дан код величины типа Double. Преобразуйте его в число.
a) 4060B00000000000; б) С0846С6000000000.
3. Представить число -10,375 в машинном виде с использованием 6 байтового представления (где 1 бит отводится под знак числа, 5 бит - под смещённый порядок, остальные биты - под мантиссу).
4. Заданы два числа А=0.011101*2101 и В=0.00100101*210. Вычислить сумму, разность и произведение этих чисел. Результат привести к нормализованной форме.
Вариант 13
1. Запишите код действительного числа, интерпретируя его как величину типа Double.
a) -142,375; 6) 565,15625.
2. Дан код величины типа Double. Преобразуйте его в число.
a) C086494000000000; 6) C083DC6000000000.
3. Представить число -66,5 в машинном виде с использованием 5 байтового представления (где 1 бит отводится под знак числа, 8 бит - под смещённый порядок, остальные биты - под мантиссу).
4. Заданы два числа А=0.01111*2111 и В=0.00100011*210. Вычислить сумму, разность и произведение этих чисел. Результат привести к нормализованной форме.
Вариант 14
1. Запишите код действительного числа, интерпретируя его как величину типа Single.
а) -550,15625; б) 616,15625.
2. Дан код величины типа Double. Преобразуйте его в число.
а) 407С360000000000; б) 408В594000000000.
3. Представить число -17,125 в машинном виде с использованием 3 байтового представления (где 1 бит отводится под знак числа, 6 бит - под смещённый порядок, остальные биты - под мантиссу).
4. Заданы два числа А=0.0110101*2111 и В=0.00100011*210. Вычислить сумму, разность и произведение этих чисел. Результат привести к нормализованной форме.
Вариант 15
1. Запишите код действительного числа, интерпретируя его как величину типа Double.
а) 84,15625; б) -681,375.
2. Дан код величины типа Double. Преобразуйте его в число.
а) 4075Е28000000000; б) С07Е980000000000.
3. Представить число -35,75 в машинном виде с использованием 5 байтового представления (где 1 бит отводится под знак числа, 4 бита - под смещённый порядок, остальные биты - под мантиссу).
4. Заданы два числа А=0.00110111*211 и В=0.00110011*210. Вычислить сумму, разность и произведение этих чисел. Результат привести к нормализованной форме.
Вариант 16
1. Запишите код действительного числа, интерпретируя его как величину типа Single.
а) 650,375; б) -974,5.
2. Дан код величины типа Double. Преобразуйте его в число.
a) C05DCA0000000000; б) 408Е5В0000000000.
3. Представить число 32,5 в машинном виде с использованием 5 байтового представления (где 1 бит отводится под знак числа, 6 бит - под смещённый порядок, остальные биты - под мантиссу).
4. Заданы два числа А=0.0010101*2111 и В=0.00100011*210. Вычислить сумму, разность и произведение этих чисел. Результат привести к нормализованной форме.
Вариант 17
1. Запишите код действительного числа, интерпретируя его как величину типа Double.
а) -423,15625; б) 835,15625.
2. Дан код величины типа Double. Преобразуйте его в число.
а) 4089794000000000; б) 408В414000000000.
3. Представить число -15,25 в машинном виде с использованием 4 байтового представления (где 1 бит отводится под знак числа, 5 бит - под смещённый порядок, остальные биты - под мантиссу).
4. Заданы два числа А=0.00110001*2101 и В=0.0100011*211. Вычислить сумму, разность и произведение этих чисел. Результат привести к нормализованной форме.
Вариант 18
1. Запишите код действительного числа, интерпретируя его как величину типа Single.
а) -197,15625; б) 341,375.
2. Дан код величины типа Double. Преобразуйте его в число.
a) C057D80000000000; б) 406F0C0000000000.
3. Представить число 22,125 в машинном виде с использованием 5 байтового представления (где 1 бит отводится под знак числа, 4 бита - под смещённый порядок, остальные биты - под мантиссу).
4. Заданы два числа А=0.011101*2111 и В=0.00110011*210. Вычислить сумму, разность и произведение этих чисел. Результат привести к нормализованной форме.
Вариант 19
1. Запишите код действительного числа, интерпретируя его как величину типа Double.
а) 612,15625; б) -652,546875.
2. Дан код величины типа Double. Преобразуйте его в число.
а) 40664С0000000000; б) 40684С0000000000.
3. Представить число -32,125 в машинном виде с использованием 3 байтового представления (где 1 бит отводится под знак числа, 6 бит - под смещённый порядок, остальные биты - под мантиссу).
4. Заданы два числа А=0.011011*2101 и В=0.00100011*2100. Вычислить сумму, разность и произведение этих чисел. Результат привести к нормализованной форме.
Вариант 20
1. Запишите код действительного числа, интерпретируя его как величину типа Single.
а) -575,375; б) 983,375.
2. Дан код величины типа Double. Преобразуйте его в число.
а) С088440000000000; б) С0696С0000000000.
3. Представить число -33,75 в машинном виде с использованием 3 байтового представления (где 1 бит отводится под знак числа, 6 бит - под смещённый порядок, остальные биты - под мантиссу).
4. Заданы два числа А=0.00110011*2110 и В=0.0101011*210. Вычислить сумму, разность и произведение этих чисел. Результат привести к нормализованной форме.
Вариант 21
1. Запишите код действительного числа, интерпретируя его как величину типа Double.
а) -503,15625; б) 339,375.
2. Дан код величины типа Double. Преобразуйте его в число.
а) С06ЕА50000000000; б) С08Е230000000000.
3. Представить число -17,825 в машинном виде с использованием 6 байтового представления (где 1 бит отводится под знак числа, 9 бит - под смещённый порядок, остальные биты - под мантиссу).
4. Заданы два числа А=0.00111011*2111 и В=0.001110011*2100. Вычислить сумму, разность и произведение этих чисел. Результат привести к нормализованной форме.
Вариант 22
1. Запишите код действительного числа, интерпретируя его как величину типа Single.
a) -654,546875; 6) 494,375.
2. Дан код величины типа Double. Преобразуйте его в число.
a) C0642G0000000000; 6) C082F14000000000.
3. Представить число 14,95 в машинном виде с использованием 4 байтового представления (где 1 бит отводится под знак числа, 6 бит - под смещённый порядок, остальные биты - под мантиссу).
4. Заданы два числа А=0.00100101*21111 и В=0.00101011*210. Вычислить сумму, разность и произведение этих чисел. Результат привести к нормализованной форме.
Вариант 23
1. Запишите код действительного числа, интерпретируя его как величину типа Double.
a) 446,15625; 6) -455,375
2. Дан код величины типа Double. Преобразуйте его в число.
a) 408B894000000000; б) С089930000000000.
3. Представить число -8,458 в машинном виде с использованием 3 байтового представления (где 1 бит отводится под знак числа, 4 бита - под смещённый порядок, остальные биты - под мантиссу).
4. Заданы два числа А=0.0110111*2110 и В=0.001010111*2100. Вычислить сумму, разность и произведение этих чисел. Результат привести к нормализованной форме.
Вариант 24
1. Запишите код действительного числа, интерпретируя его как величину типа Single.
a) 279,375; 6) -838,15625.
2. Дан код величины типа Double. Преобразуйте его в число.
a) 4081C94000000000; 6) 403D800000000000.
3. Представить число -32,85 в машинном виде с использованием 4 байтового представления (где 1 бит отводится под знак числа, 8 бит - под смещённый порядок, остальные биты - под мантиссу).
4. Заданы два числа А=0.00111001*2111 и В=0.00101011*2110. Вычислить сумму, разность и произведение этих чисел. Результат привести к нормализованной форме.
Вариант 25
1. Запишите код действительного числа, интерпретируя его как величину типа Double.
a) 300,546875; 6) -400,15625.
2. Дан код величины типа Double. Преобразуйте его в число.
a) 408EFB0000000000; 6) 4078D28000000000.
3. Представить число 32,125 в машинном виде с использованием 4 байтового представления (где 1 бит отводится под знак числа, 7 бит - под смещённый порядок, остальные биты - под мантиссу).
4. Заданы два числа А=0.0100101*2111 и В=0.00101011*2101. Вычислить сумму, разность и произведение этих чисел. Результат привести к нормализованной форме.
Контрольные вопросы:
1. Как получить прямой и дополнительный коды целого числа?
2. Как представляются действительные числа в памяти ЭВМ?
3. Как получить числа в нормализованной форме?
4. Как выполняются арифметические операции над нормализованными числами?
Лабораторная работа №6