Первые различающиеся байты переведем в двоичную систему счисления(третий байт):
Найдем наименьшее возможное значение третьего байта. Выпишем в столбик двоичные записи чисел 128 и 137. Добавим еще одну строчку, в которую будем записывать минимально возможное значение третьего байта. Если значения в столбике одинаковые, то ставим соответствующее число, если они различаются, ставим какой-нибудь знак. Я поставил знак '?'.
Теперь перенесем все '?' к последней единице(в нашем случае она и первая):
Так как нам нужно найти наименьшее возможное значение, заменяем '?' на нули:
Т.к. в маске подсети сначала идут только единицы, а затем нули, то логично, что если третий байт имеет значение 1000 0000, то первый и второй байт имеют значения 11111111. Следовательно наименьшая маска подсети имеет вид: 11111111.11111111.10000000.00000000
var c, s, n, k : integer;
x,d :longint;
begin
writeln('введите x');
readln (x);
k := 0; //количество четных цифр в числе
while x > 0 do //пока х не равен нолю
begin
if (x mod 2) = 0 then k := k + 1; //проверяем четна ли последняя цифра числа
//+1 к кол-ву четных цифр
x := x div 10; //сокращаем на один знак и повторяем операцию
end;
if k >= 2 then
writeln('Да') //если кол-во четных цифр больше 2
//выводим 2, иначе не выводим ничего
end.
/* Вот написал сам, но то что пытался сделать ты не понял */
Найдем наименьшее возможное значение третьего байта. Выпишем в столбик двоичные записи чисел 128 и 137. Добавим еще одну строчку, в которую будем записывать минимально возможное значение третьего байта. Если значения в столбике одинаковые, то ставим соответствующее число, если они различаются, ставим какой-нибудь знак. Я поставил знак '?'.
Теперь перенесем все '?' к последней единице(в нашем случае она и первая):
Так как нам нужно найти наименьшее возможное значение, заменяем '?' на нули:
Т.к. в маске подсети сначала идут только единицы, а затем нули, то логично, что если третий байт имеет значение 1000 0000, то первый и второй байт имеют значения 11111111.
Следовательно наименьшая маска подсети имеет вид: 11111111.11111111.10000000.00000000
ответ: 17 единиц.