Рассмотрим третий байт IP-адреса узла и IP-адрес сети. Распишем в двоичном виде: 94 = 01011110 80 = 01010000 Первые два байта маски равны 255, так как байты узла и сети совпадают. Для определения третьего байта маски сети найдем число первых бит, которые совпадают. Совпадают 0101, поэтому число первых бит равно 4, а сам третий байт маски равен 11110000, то есть 240.
// Задача решается длинной арифметикой VAR a,b,c: String; i, s: LongInt;
Procedure Sum(var a, b: String); Var i, p, c1,c2: LongInt; Begin while (Length(a) < Length(b)) do a := '0' + a; while (Length(b) < Length(a)) do b := '0' + b;
p := 0; for i := Length(a) downto 1 do begin c1 := Ord(a[i]) - 48; c2 := Ord(b[i]) - 48;
a[i] := Chr(48 + (c1 + c2 + p)mod 10); p := (c1 + c2 + p) div 10; end;
if (p > 0) then a := Chr(p + 48) + a; End;
BEGIN a:= '2013'; b:= '2014';
for i := 3 to 2014 do begin Sum(a, b); c := a; a := b; b := c; end;
Writeln(c);
s := 0; for i := 1 to Length(c) do s := s + Ord(c[i]) - 48;
Переводим 112 и 64 в 2СС . 112 =1110000 64 =1000000 так как байт - это 8 бит ,следовательно в числе должно быть восемь знаков , тогда добавляем перед числами по незначащему нулю , тогда 112 = 01110000 64 = 01000000 адрес сети получается , когда мы применяем поразрядную конъюнкцию (между маской и ip адресом) 01110000 <-- маска
01000000 мы видим в адресе сети единицу и над ней в ip адресе тоже единица , значит на этом месте в маске может быть только 1 . Так как в маске у нас идут (СТРОГО) сначала единицы ,потом нули, тогда маска будет равна 11000000 , что в переводе в 10 -ную СС =192 ответ : 192
94 = 01011110
80 = 01010000
Первые два байта маски равны 255, так как байты узла и сети совпадают.
Для определения третьего байта маски сети найдем число первых бит, которые совпадают. Совпадают 0101, поэтому число первых бит равно 4, а сам третий байт маски равен 11110000, то есть 240.