, таким образом 255 представляет собой 8 единиц в двоичной записи. , соответственно 192 представляет собой 2 единицы и нули в двоичной записи. Тогда целая маска выглядит как . В маске есть только 6 нулей, которые соответствуют внутреннему адресу компьютера. 6 битами можно закодировать компьютера, таким образом эта маска допускает 64 адреса. Но так как 2 адреса заняты (адресом сети и широковещательным), то для подсети остается только 62 адреса.
Поясню, как это скорее всего работает: Пусть A = 255.255.255.192. Пусть какой-то пакет информации поступил на адрес B, первые 26 бит которого соответствуют адресу сети C. Это можно проверить результатом операции A ^ B = C ^ A. Далее этот пакет следует перенаправить на какой-то компьютер подсети. Его адрес узнаем операцией (not A) ^ B.
Но это лишь то, как я себе представил, могу ошибаться.
class Program
{
static void Main()
{
for(var x=-2;x<=2;x++){
for(var y=-2;y<=2;y++){
IsPointOnAxis(x, y);
}
}
Console.ReadKey();
}
static void IsPointOnAxis(int x, int y){
Console.WriteLine("Point = {0}; {1}", x, y);
if (x*y != 0){
Console.WriteLine("Point not on axis");
return;
}
if (x == 0){
Console.WriteLine("Point is on axis Ox");
}else if (y == 0){
Console.WriteLine("Point is on axis Oy");
}
}
}
, соответственно 192 представляет собой 2 единицы и нули в двоичной записи.
Тогда целая маска выглядит как
.
В маске есть только 6 нулей, которые соответствуют внутреннему адресу компьютера. 6 битами можно закодировать компьютера, таким образом эта маска допускает 64 адреса. Но так как 2 адреса заняты (адресом сети и широковещательным), то для подсети остается только 62 адреса.
Поясню, как это скорее всего работает:
Пусть A = 255.255.255.192.
Пусть какой-то пакет информации поступил на адрес B, первые 26 бит которого соответствуют адресу сети C. Это можно проверить результатом операции
A ^ B = C ^ A.
Далее этот пакет следует перенаправить на какой-то компьютер подсети. Его адрес узнаем операцией (not A) ^ B.
Но это лишь то, как я себе представил, могу ошибаться.