Переводим третий байт IP адреса (127) и адреса сети (64) в двоичную систему: 1111111 - ip 1000000 - net
Добавим незначащие нули, чтобы кол-во бит было равно восьми:
01111111 - ip 01000000 - net
Адрес сети получается в результате применения поразрядной конъюнкции к разрядам ip адреса и маски, то есть смотрим, какими должны быть биты маски, чтобы при умножении их на биты IP-адреса получились такие биты адреса сети, какие нам даны:
11000000 - mask 01111111 - ip 01000000 - net
Учитываем, что в маске всегда идут сначала единицы, потом только нули.
Переводим 11000000 в десятичную, это 192.
ответ: 192
msk27
11.09.2020
#include <iostream> using namespace std;
int main() { int n=12, imax=0, imin=0; int a[n]; srand(time(NULL)); cout<<"array:"<<endl; for (int i=0; i<n; i++) { a[i]=rand() % 50; cout<<a[i]<<" "; } cout<<endl; for (int i=1; i<n; i++) { if (a[i] > a[imax]) imax = i; if (a[i] < a[imin]) imin = i; } for (int i=0; i<n; i++) { if (i == imax || i == imin) cout << " ! " << a[i] << " ! "; else cout << a[i] << " "; } cout<<endl; return 0; }
Задачка интересная, исследуем её.Понятно, что программ будет 8. Но в задаче спрашивается, сколько разных чисел получится из двойки, поэтому нужно исследовать каждую программу1. +++ (((2 +2) +2) +2 = 82. ++* (((2 +2) +2) *3 = 183. +*+ (((2 +2) *3) +2 = 144. *++ (((2 *3) +2) +2 = 105. *** (((2 *3) *3) *3 = 54 6. **+ (((2 *3) *3) +2 = 207. *+* (((2 *3) +2) *3 = 248. +** (((2 +2) *3) *3 = 36 Вот только теперь можно сказать что из 2 можно получить 8 разных чисел.
1111111 - ip
1000000 - net
Добавим незначащие нули, чтобы кол-во бит было равно восьми:
01111111 - ip
01000000 - net
Адрес сети получается в результате применения поразрядной конъюнкции к разрядам ip адреса и маски, то есть смотрим, какими должны быть биты маски, чтобы при умножении их на биты IP-адреса получились такие биты адреса сети, какие нам даны:
11000000 - mask
01111111 - ip
01000000 - net
Учитываем, что в маске всегда идут сначала единицы, потом только нули.
Переводим 11000000 в десятичную, это 192.
ответ: 192