с ответом. Запишите X и Y в прямом,обратном и дополнительных кодах. Результат переведите в прямой код.Полученный результат проверьте,используя правила двоичной арифметики: Х заранее с ответом.
Var A:Array[1..100] of Word; N,Max_S,i,I_max:Byte; Function Sum_of_figures(p:Word):Byte; var d:Word; S,j:Byte; begin d:=10000; S:=0; For j:=1 to 5 do begin S:=S+(p div d); p:=p mod d; d:=d div 10; end; Sum_of_figures:=S; end; Begin Randomize; Write('N= '); Readln(N); Writeln; Writeln('Initial array:'); For i:=1 to N do begin A[i]:=Random(65535); Write(A[i]:8); end; Writeln; Writeln; Writeln('Sums of figures:'); Max_S:=0; For i:=1 to N do begin Write(Sum_of_figures(A[i]):8); If Sum_of_figures(A[i])>Max_S then begin Max_S:=Sum_of_figures(A[i]); I_max:=i; end; end; Writeln; Writeln; Writeln('Maximal sum of figures (',Max_S,') has the element N',I_max,' equal to ',A[I_max]); Readln; End.
Объяснение:
Как я понимаю, числа представлены в двоичном виде.
Здесь 5 бит, но мы представим эти числа в 8-битном виде.
X1 = 00011011 - это прямой код отрицательного числа -27.
X2 = 11100100 - это обратный код того же числа. Это просто инверсия.
X3 = 11100101 - это дополнительный код числа. К обратному коду прибавили 1.
Y1 = 00010101 - это прямой код отрицательного числа -21.
Y2 = 11101010 - это обратный код.
Y3 = 11101011 - это дополнительный код.