Переводим третий байт IP и адреса сети в двоичную систему
50 - 110010
48 - 110000
Так как это байт (а в байте 8 бит), допишем два незначащих нуля к получившимся числам:
00110010 - IP
00110000 - адрес сети
Адрес сети получается с применения поразрядной конъюнкции к маске и IP, проще говоря, при перемножении разрядов маски и IP-адреса. И в маске всегда сначала идут только единицы, а потом только нули. То есть можно записать так:
- маска
00110010 - IP
00110000 - адрес сети
где иксы в маске и цифры в IP-адресе - множители, а разряды адреса сети - произведение.
На 3 и 4 месте в маске однозначно должны быть единицы, т.к. если там будут нули, то и в адресе сети будут нули. Плюс к этому, в маске всегда сначала идут только единицы, а потом только нули, то есть можно записать так:
1111 - маска
00110010 - IP
00110000 - адрес сети
Второй справа разряд IP-адреса - единица, а адреса сети - ноль, значит в маске может быть только ноль:
1111хх00 - маска
00110010 - IP
00110000 - адрес сети
Оставшиеся два икса могут быть и единицами, и нулями. Нужно наименьшее возможное значение, значит поставим на их место нули:
11110000 - маска
00110010 - IP
00110000 - адрес сети
То есть третий байт маски 11110000, переведём в десятичную - получим 240.
1.
program test;
var i,k2,k3,k4,k5:integer;
a:array [1..20] of integer;
begin
k2:=0;
k3:=0;
k4:=0;
k5:=0;
for i:=1 to 20 do
begin
a[i]:=random(4)+2;
if a[i]=2 then k2:=k2+1;
if a[i]=3 then k3:=k3+1;
if a[i]=4 then k4:=k4+1;
if a[i]=5 then k5:=k5+1;
write(a[i],' ')
end;
writeln;
writeln(k2);
writeln(k3);
writeln(k4);
write(k5)
end.
2.
var i,j,v:integer;
a:array [1..10] of integer;
begin
for i:=1 to 10 do
begin
a[i]:=random (100);
write(a[i]:3)
end;
for i:=1 to 9 do
for j:=1 to 9 do
if a[j]>a[j+1] then
begin
v:=a[j];
a[j]:=a[j+1];
a[j+1]:=v
end;
writeln;
for i:=1 to 10 do write(a[i]:3)
end.
3.
var a:array [1..10] of integer;
i,j,m,v:integer;
begin
randomize;
for i:=1 to 10 do
begin
a[i]:=random(100);
write(a[i]:3)
end;
writeln;
for i:=1 to 10 do
begin
m:=i;
for j:=i to 10 do
if a[m] mod 10 < a[j] mod 10 then m:=j;
v := a[i];
a[i]:= a[m];
a[m] := v;
write(a[i]:3)
end;
end.
Переводим третий байт IP и адреса сети в двоичную систему
50 - 110010
48 - 110000
Так как это байт (а в байте 8 бит), допишем два незначащих нуля к получившимся числам:
00110010 - IP
00110000 - адрес сети
Адрес сети получается с применения поразрядной конъюнкции к маске и IP, проще говоря, при перемножении разрядов маски и IP-адреса. И в маске всегда сначала идут только единицы, а потом только нули. То есть можно записать так:
- маска
00110010 - IP
00110000 - адрес сети
где иксы в маске и цифры в IP-адресе - множители, а разряды адреса сети - произведение.
На 3 и 4 месте в маске однозначно должны быть единицы, т.к. если там будут нули, то и в адресе сети будут нули. Плюс к этому, в маске всегда сначала идут только единицы, а потом только нули, то есть можно записать так:
1111 - маска
00110010 - IP
00110000 - адрес сети
Второй справа разряд IP-адреса - единица, а адреса сети - ноль, значит в маске может быть только ноль:
1111хх00 - маска
00110010 - IP
00110000 - адрес сети
Оставшиеся два икса могут быть и единицами, и нулями. Нужно наименьшее возможное значение, значит поставим на их место нули:
11110000 - маска
00110010 - IP
00110000 - адрес сети
То есть третий байт маски 11110000, переведём в десятичную - получим 240.