Что бы узнать адрес сети, нужно перевести маску и IP узла в двоичную систему счисления, и перемножить соответственные биты адреса узла маски. К адресу сети относятся те биты адреса узла, которым соответствуют единичные биты маски сети. Значит, будем сравнивать только последние два байта адреса и маски, т.к первые два маски - 255 - 11111111 (Первые два байта адреса узла и адреса сети будут идентичны, т.к им соответствующие им байты маски равны 255)
Узел: х.х.227.146
Маска: х.х.224.0
Переведём в двоичную СС:
Узел: х.х.11100011.10010010
Маска: х.х.11100000.00000000
Выполним поразрядную конъюнкцию (по битам перемножим адрес узла на соответственные биты маски сети), получим:
11100000.00000000 - это и есть два последних байта адреса сети, записанные в двоичной системе счисления. Осталось перевести их в десятичную СС:
224.0 -> Отсюда получаем полный адрес сети: 142.9.224.0
#include <bits/stdc++.h>
using namespace std;
int main()
{
char a[8][8];
long long x, y, i, j;
cin >> y >> x;
for(i = 0; i < 8; i++){
for(j = 0; j < 8; j++){
a[i][j] = '.';
}
}
x--;
y--;
if(x - y >= 0){
i = 0;
j = x - y;
}
else{
j = 0;
i = y - x;
}
for(;i < 8 and j < 8;){
a[i][j] = '*';
i++;
j++;
}
if(x + y <= 7){
i = 0;
j = x + y;
}
else{
j = 7;
i = x + y - 7;
}
for(;i < 8 and j >= 0;){
a[i][j] = '*';
i++;
j--;
}
i = 0;
j = x;
for(;i < 8; i++){
a[i][j] = '*';
}
i = y;
j = 0;
for(;j < 8; j++){
a[i][j] = '*';
}
a[y][x] ='Q';
for(i = 0; i < 8; i++){
for(j = 0; j < 8; j++){
cout << a[i][j] << " ";
}
cout << '\n';
}
return 0;
}
Объяснение:
142.9.224.0
Объяснение:
Что бы узнать адрес сети, нужно перевести маску и IP узла в двоичную систему счисления, и перемножить соответственные биты адреса узла маски. К адресу сети относятся те биты адреса узла, которым соответствуют единичные биты маски сети. Значит, будем сравнивать только последние два байта адреса и маски, т.к первые два маски - 255 - 11111111 (Первые два байта адреса узла и адреса сети будут идентичны, т.к им соответствующие им байты маски равны 255)
Узел: х.х.227.146
Маска: х.х.224.0
Переведём в двоичную СС:
Узел: х.х.11100011.10010010
Маска: х.х.11100000.00000000
Выполним поразрядную конъюнкцию (по битам перемножим адрес узла на соответственные биты маски сети), получим:
11100000.00000000 - это и есть два последних байта адреса сети, записанные в двоичной системе счисления. Осталось перевести их в десятичную СС:
224.0 -> Отсюда получаем полный адрес сети: 142.9.224.0