Var
x:real;
Begin
Write('x = ');
ReadLn(x);
Write('f(',x,') = ',4*Cos(2*x)*Sin(2*x)-7.1*x*x*x+sqrt(x))
End.
Сначала запишем выражение в виде степеней двойки:
2^16096 - 2^3210 + 2^1024 - 2^7 + 2
Далее последовательно запишем представление числа по действиям:
1) 2^16096 = (в позиции 16096)10000...0
2^3210 = (в позиции 3210)10000...0
При их разности получится:
(16095)111111...111(3210)000...0
2) Прибавляем 2^1024 и получается (16095)111111...111(3210)000...01(1024)0....0
3) (16095)111111...111(3210)000...01(1023)1....1(7)0000000
4) (16095)111111...111(3210)000...01(1023)1....1(7)0000010
Вычисляем кол-о 1: 16095 - 3210 + 1 + 1023 - 7 + 1 + 1 = 13904
Для 2-байтовой ячейки:
59 = 0000000000111011
-59= 1000000000111011 - прямой код
= 1111111111000100 - обратный код (инверсия)
= 1111111111000101 - дополнительный код (после прибавления единички)
30 = 0000000000011110
-30 = 1000000000011110 - прямой код
= 1111111111100001 - обратный код (инверсия)
= 1111111111100010 - дополнительный код (после прибавления единички)
*********************************
Расчеты смотри на фото