Сначала числа преобразуются в двоичный код. А=-5(10)=-101(2) В=-8,25(10)=-1000,01(2) Числа в формате с фиксированной запятой в памяти хранятся таким образом, что позиция запятой известна и неизменна для всех чисел (отсюда и название с фиксированной точкой) . Для этого число А должно быть представлено в виде -101,00(2) Пусть для хранения используется 8 разрядов. Тогда числа в прямом коде будут представлены в виде А: 1.00101,00 В: 1.01000,01 - здесь отделённый точкой старший разряд знаковый, 1 - означает минус. Обратный код получается инверсией всех разрядов, кроме знаковых. А: 1.11010,11 В: 1.10111,10 Теперь нужно получить дополнительный код. Но перед этим нужно иметь в виду, что ни запятые, ни точки в памяти не хранятся, но всегда известно, где знаковый разряд и сколько разрядов в дробной части. Поэтому А: 11101011 + 1 = 11101100 В: 11011110 + 1 = 11011111 Это и есть внутреннее представление заданных чисел в дополнительном коде. Сложение и вычитание чисел с фиксированной точкой производится так же, как и для целых чисел. 11101100 + 11011111
111001011 - старший разряд (№8) будет выдавлен из разрядной сетки и в данном случае просто отброшен. Результат операции сложения 11001011. Теперь можно преобразовать получившееся число в привычный десятичный вид и проверить результат. 1.1001011 1.0110100 - обратный код 1.0110100 + 1 = 1.0110101 - прямой код. Возвращаем запятую на место 1.01101,01 -> -(8+4+1+1/4) В десятичном виде это число -13,25 Сложение было выполнено правильно.
А=-5(10)=-101(2)
В=-8,25(10)=-1000,01(2)
Числа в формате с фиксированной запятой в памяти хранятся таким образом, что позиция запятой известна и неизменна для всех чисел (отсюда и название с фиксированной точкой) .
Для этого число А должно быть представлено в виде -101,00(2)
Пусть для хранения используется 8 разрядов. Тогда числа в прямом коде будут представлены в виде
А: 1.00101,00
В: 1.01000,01 - здесь отделённый точкой старший разряд знаковый, 1 - означает минус.
Обратный код получается инверсией всех разрядов, кроме знаковых.
А: 1.11010,11
В: 1.10111,10
Теперь нужно получить дополнительный код. Но перед этим нужно иметь в виду, что ни запятые, ни точки в памяти не хранятся, но всегда известно, где знаковый разряд и сколько разрядов в дробной части. Поэтому
А: 11101011 + 1 = 11101100
В: 11011110 + 1 = 11011111
Это и есть внутреннее представление заданных чисел в дополнительном коде.
Сложение и вычитание чисел с фиксированной точкой производится так же, как и для целых чисел.
11101100
+
11011111
111001011 - старший разряд (№8) будет выдавлен из разрядной сетки и в данном случае просто отброшен. Результат операции сложения 11001011.
Теперь можно преобразовать получившееся число в привычный десятичный вид и проверить результат.
1.1001011
1.0110100 - обратный код
1.0110100 + 1 = 1.0110101 - прямой код.
Возвращаем запятую на место
1.01101,01 -> -(8+4+1+1/4)
В десятичном виде это число -13,25
Сложение было выполнено правильно.
Дано:
K=1024*768=786 432
N=16 777 216
Найти:
V-?
Решение:
V=K*I
I=log₂N
I=log₂16777216=24 бит
V=768432*24=18874368 бит : 8=2359296 байт : 1024=2304 Кб : 1024=2.25 Мб
ответ: 2.25 Мб
2)
Дано:
K=1600*1200=1 920 000
N=16 777 216
Найти:
V-?
Решение:
V=K*I
I=log₂N
I=log₂16777216=24 бит
V=1920000*24=46080000 бит : 8=5760000 байт : 1024=5625 Кб : 1024≈5.5 Мб
ответ: видеокарту с 64 Мб памяти
3)
Дано:
K=1024*768=786 432
I=16 бит
Найти:
V - ?
Решение:
V=K*I
V=786432*16=12582912 бит : 8=1572864 байт : 1024=1536 Кб : 1024=1.5 Мб
Гц (частота) - количество действий в одну секунду => 1.5 Мб * 75=112.5 Мб
ответ: 112.5 Мб