Решение задач на тему
«Представление чисел в компьютере».
Уровень «3»
1. Пусть для представления целых чисел в компьютере
используется 16 - разрядная ячейка (2 байта). Определить каков диапазон хранимых
чисел, если: а) используются только положительные числа; б) используются как
положительные, так и отрицательные числа в равном количестве.
Решение:
Всего в 16 – разрядной сетке может храниться 216 =65536 значений. Следовательно:
а) диапазон значений только положительных чисел от 0 до 65535 (от 0 до 2k -1, 1 отняли, так как одно значение пошло на кодировку числа 0);
б) диапазон значений положительных и отрицательных чисел в равном количестве рассчитаем так: 65536:2= 32768. Минимальное отрицательное число равно -32768. Так как число 0 также входит в этот диапазон, то максимальное положительное число будет равно 32767 (от -2 k-1 до 2 k-1 -1, действительно, так как 2k:2=2 k-1).
Ответ: а) от 0 до 65535; б) от -32768 до 32767.
Уровень «4»
2.
Получить
десятичное представление числа по его дополнительному коду 100101112
Решение:
1.)
Инвертируем дополнительный код 100101112.
Получим 01101000 – обратный код
2)
Прибавим к полученному числу
1. Получим
число 01101001
3)
Переведем полученную запись числа из двоичной
в 10-ю форму. Получим число 105.
4) Перед
полученным числом поставим знак «-»
Уровень «5»
3.
Минимальное значение математического порядка в десятичной системе счисления
равно (-1024). Чему равно смещение?
Решение:
Машинный порядок смещен относительно математического и имеет только положительные значения. Смещение выбирается так, чтобы минимальному математическому значению порядка соответствовал нуль.
Связь между машинным порядком (Мр) и математическим (р) в рассматриваемом случае выражается формулой: Мр = р + 64, где 64 - смещение для представления в 64 байтовой ячейке памяти.
Если представить это на шкале, то имеем:
-64
0
63
В данной задаче
Минимальное значение математического порядка в
десятичной системе счисления равно (-1024).
На шкале это можно представить так:
-1024
0
1023
Легко видеть, смещение равно 1024.
Ответ: 1024.
4. Получить шестнадцатеричную форму внутреннего представления отрицательного
числа -123,125 в формате с плавающей точкой в 4-х байтовой ячейке.
?
Решение:
Используем алгоритм
записи внутреннего представления
вещественного числа:
1. Переведем модуль числа в двоичную систему счисления с 24 значащими цифрами.
12310 =11110112 0,12510 =0, 0012
123,12510 =1111011, 001000000000000002 (4 байта-32 разряда, 1 байт на знак и порядок, 3 байта или 24 бита на мантиссу)
2. Запишем в форме нормализованного двоичного числа с плавающей запятой:
0, 111101100100000000000000 х 102 111 (1112 =710 )
3. Вычислим машинный порядок в двоичной системе счисления.
Мр2 = р2 + 100 00002 = 1112
+ 100 00002 = 10001112
4. Запишем представление числа в 4-х байтовой ячейке памяти с учетом знака числа:
1 |
1000111 |
1111 0110 |
0100 0000 |
0000 0000 |
|
31 |
24 Мр2 |
23 |
|
0 |
|
Шестнадцатеричная форма: -
47F64000.
Ответ: - 47F64000
5.
В «игрушечном» компьютере для представления вещественных
чисел используется однобайтовая ячейка памяти (биты
нумеруются от 0 до 7 справа налево). 7-й бит — знак числа; 5
и 6 биты — машинный порядок; 4 — 0 биты — мантисса. Определить:
1) количество точно представимых вещественных
чисел; 2) 7 наименьших десятичных чисел, представимых
точно в таком компьютере.
Решение:
1.)
Количество вещественных чисел,
точно представимых в памяти
компьютера, вычисляется по
формуле: N
= 2
t х
(U
-
L + 1) + 1.
Здесь
t — количество двоичных
разрядов мантиссы;
U — максимальное
значение математического
порядка;
L — минимальное
значение порядка.
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Знак
числа
Машинный порядок М
а
н
т
и
с
с
а
t =5.
Максимальное значение
машинного порядка 112 =310 . Всего значений порядка 4,
L=-4:2 =-2,
U=4:2-1=1
N
= 2 5 х
(1 - 2 + 1) + 1 = 129.
Ответ: 129.
2.) Первое наименьшее число:
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0,000012 =1/25
= 0,03125
Второе наименьшее число
0,000102
=1/24 =0,0625
Третье наименьшее число
0,000112
=1/24 + 1/25
=0,0625 +0,03125 =0,09375
Четвертое наименьшее число
0,001002
=1/23 = 0,125
Пятое
наименьшее число
0,001012 =1/23
+ 1/25 =
0,125+ 0,03125 =0,15625
Шестое
наименьшее число
0,001102 =1/23
+ 1/24 =
0,125+0,0625 =0,1875
Седьмое наименьшее число
0,001112
=1/23 + 1/24
+ 1/25 =
0,125+0,0625+ 0,03125
=0,21875
6. Произвести сложение, вычитание, умножение и деление чисел 0,1×22 и
0,1×2-2 в формате с
плавающей запятой.
Решение:
Произведем выравнивание порядков и сложение мантисс:
0,1×2-2 = Х × 22 , Х = ( 0,1×2-2 )/ 22= 0,1×2-4 = 0,00001
0,10000 ×22
+0,00001 ×22
0,10001×25
Произведем вычитание мантисс и процедуру нормализации:
0,10000 ×22
- 0,00001 ×22
0,01111×22
= 0,1111×21
Используем алгоритм умножения: сложим порядки и перемножим мантиссы.
0,10000 ×22
х 0,00001 ×22
0,000001 ×24 , нормализуем ответ 0,1×2-1
Используем алгоритм деления чисел в формате с плавающей запятой: из порядка делимого вычесть порядок делителя, мантиссу делимого делить на мантиссу делителя.
0,10000 ×22
: 0,00001 ×22
10 000 ×20,
нормализуем ответ 0,1×25
Ответ: 0,10001×25;
0,1111×21; 0,1×2-1
; 0,1×25