1) Один байт = 8 бит, максимальное число 2^8 - 1 = 255, если числа без знака. Для знаковых чисел старший бит отводится под знак числа, следовательно, минимальное число = - 2^7 - 1
= - 127, максимальное число = + 127
2) Число 1607, ячейка двухбайтовая, один бит под знак, следовательно, под число отводится 15 бит, в двоичном представлении 1607(10) = 11001000111(2), дополняем до 16 бит, старший бит - знаковый - нулевой, так как число положительное
= 0000011001000111(2) - это двоичное представление в двухбайтовой ячейке, чтобы получить шестнадцатиричное представление, разбиваем число справа - налево по 4 бита
0000 0110 0100 0111 и записываем в шестнадцатиричном виде
0111(2) = 7(16) 0100(2) = 4(16) 0110(2) =6(16) 0000(2) = 0(16)
1607(16) = 0647(16) или без старшего не значащего нуля = 647(16)
3) для получения дополнительного кода числа, находят обратное число, или инверсию числа,
для этого каждый бит числа изменяют на противоположный, 1 на 0, 0 на 1
105(10) = 1101001(2) - это и есть дополнительный код числа - 105, т.е. дополнительным кодом
числа (- а) будет число а.
Найдем дополнительный код в однобайтовой ячейке числа 105(10) = 01101001(2),
а) находим обратное 01101001(2) ->(обратное) ->10010110(2)
б) дополнительный код-> обратный код + 1 ->(дополнительный)->10010111(2), а это число - 105
потому, что отрицательные числа представляются в дополнительном коде.
Если для числа - 105 найти дополнительный код, то получим число 105
10010111(2)->(дополнительный)->01101000+1->01101001 = 69(16) = 16*6+9 = 96+9 = 105
В Делфи не проверял, но должна работать. Если что, пиши.
const
n=5;
m=6;
var
a:array[1..n,1..m]of integer;
i,j,s,p,min,max:integer;
begin
s:=0;
p:=0;
for i:=1 to n do
for j:=1 to m do
a[i,j]:=random(10);
min:=a[1,1];
max:=min;
for i:=1 to n do
begin
for j:=1 to m do
begin
write(a[i,j]:3);
if a[i,j]>max then max:=a[i,j];
if a[i,j]<min then min:=a[i,j];
end;
writeln
end;
for i:=1 to n do
begin
if p>2 then break;
for j:=1 to m do
begin
if p>2 then break;
if a[i,j]=max then p:=p+1;
if a[i,j]=min then p:=p+2;
if p>0 then s:=s+a[i,j];
end;
end;
writeln('S=',s)
end.
//PascalABC.NET
begin
ReadSeqIntegerWhile(x -> x <> 0).Where(x -> (x mod 10 = 6) and (x mod 6 = 0)).Sum.Print;
end.
Program1; Uses crt;
var a: integer;
begin clrscr;
Writeln('введите число");
Readln(a);
if a>0 then Writeln('a-положительное');
if a<0 then Writeln('a-отрицательное');
if a=0 then Writeln('a=0');
Readln;
End.
Только я вот не понял, зачем фотка прикреплена к вопросу?..
14-м 1-а 26-ш 1-а.
Для этого она заменила каждую букву в своём имени на её номер в алфавите