Восьмибитовая ячейка - это байт. В байте стандартно можно представить числа в диапазоне от -128 до 127; при этом положительные числа представляются в прямом коде. а отрицательные - в модифицированном. Самый старший (левый, он же - седьмой) бит используется для знака (0 - плюс, 1 - минус), а остальные семь (с нумерацией справа налево от 0 до 6) - для хранения двоичного представления числа. Модифицированный код получается из прямого путем инвертирования бит (0 заменяется на 1, 1 заменяется на 0) - при этом получаем дополнительный код, - а затем прибавлеем к результату 1 в младшем (правом) разряде. а) 56(10)=111000(2) и отображается в байте как 0 0111000 (знаковый бит отделен условно) б) -56(10)=-111000(2), 1 0111000 в прямом коде, 1 1000111 в дополнительном коде, 1 1001000 в модифицированном коде. в) 127(10)=1111111(2) , 0 1111111 в байте г) -127(10)=-111111(2), 1 1111111 в прямом коде, 1 0000000 в дополнительном коде, 1 0000001 в модифицированном коде.
Var a:array[1..5] of integer; i,Max,c,n,f:integer; procedure ho; begin if a[i]>Max then begin Max:=a[i]; c:=i; end; end;
begin for i:=1 to 5 do begin a[i]:= random(15)+2; write(a[i],' '); end; Max:=a[1]; c:=1; for i:=1 to 5 do ho; writeln; writeln('Максимум: ',max); f:=c; if f=1 then begin max:=a[2]; for i:=2 to 5 do ho; writeln('Вторичный максимум: ',max); exit; end; if f<5 then begin Max:=a[f+1]; for i:=f+1 to 5 do ho; n:=max; end; if f>1 then begin Max:=a[1]; c:=f; for i:=1 to c-1 do ho; if max>n then writeln('Вторичный максимумì: ',max); if max<n then writeln('Вторичный максимум: ',n); end; end.
15.0 (float)
Объяснение:
1 итерац: 2**0 = 1.0 (s = 1.0)
2 итерац: 2**1 = 2.0 (s = 3.0)
3 итерац: 2**2 = 4.0 (s = 7.0)
4 итерац: 2**3 = 8.0 (s = 15.0)
результат каждой итерации складываем. Никаких преобразований там нет, значит всё в типе float(с плавающей запятой)