Восьмибитовая ячейка - это байт. В байте стандартно можно представить числа в диапазоне от -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 в модифицированном коде.
type massiv = array [2..21] of integer; var mass : massiv; i, summa : integer;
begin summa := 0; for i:=2 to 21 do begin mass[i]:=i; if (mass[i] mod 2 = 0) then summa := summa + mass[i] end; writeln('Сумма четных эл-тов равна : ', summa); readln; end.
program z; var a : array[2..21] of integer; i,summ : integer; b : array[2..21] of integer;
begin for i:= 2 to 21 do begin a[i]:=i; end;
for i:=2 to 21 do begin if a[i] mod 2 = 0 then begin b[i]:=a[i]; end;
end;
summ:=0; for i:=2 to 21 do begin summ:=summ+b[i]; end; Writeln(summ); readln;
Модифицированный код получается из прямого путем инвертирования бит (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 в модифицированном коде.
massiv = array [2..21] of integer;
var
mass : massiv;
i, summa : integer;
begin
summa := 0;
for i:=2 to 21 do
begin
mass[i]:=i;
if (mass[i] mod 2 = 0) then
summa := summa + mass[i]
end;
writeln('Сумма четных эл-тов равна : ', summa);
readln;
end.
program z;
var
a : array[2..21] of integer;
i,summ : integer;
b : array[2..21] of integer;
begin
for i:= 2 to 21 do
begin
a[i]:=i;
end;
for i:=2 to 21 do
begin
if a[i] mod 2 = 0 then
begin
b[i]:=a[i];
end;
end;
summ:=0;
for i:=2 to 21 do
begin
summ:=summ+b[i];
end;
Writeln(summ);
readln;
end.