Переводим третий байт IP и адреса сети в двоичную систему
50 - 110010
48 - 110000
Так как это байт (а в байте 8 бит), допишем два незначащих нуля к получившимся числам:
00110010 - IP
00110000 - адрес сети
Адрес сети получается с применения поразрядной конъюнкции к маске и IP, проще говоря, при перемножении разрядов маски и IP-адреса. И в маске всегда сначала идут только единицы, а потом только нули. То есть можно записать так:
- маска
00110010 - IP
00110000 - адрес сети
где иксы в маске и цифры в IP-адресе - множители, а разряды адреса сети - произведение.
На 3 и 4 месте в маске однозначно должны быть единицы, т.к. если там будут нули, то и в адресе сети будут нули. Плюс к этому, в маске всегда сначала идут только единицы, а потом только нули, то есть можно записать так:
1111 - маска
00110010 - IP
00110000 - адрес сети
Второй справа разряд IP-адреса - единица, а адреса сети - ноль, значит в маске может быть только ноль:
1111хх00 - маска
00110010 - IP
00110000 - адрес сети
Оставшиеся два икса могут быть и единицами, и нулями. Нужно наименьшее возможное значение, значит поставим на их место нули:
11110000 - маска
00110010 - IP
00110000 - адрес сети
То есть третий байт маски 11110000, переведём в десятичную - получим 240.
#include <iostream>
#include <ctime>
using namespace std;
int main() {
srand(time(NULL));
int arr[10],sum=0;
for (int i = 0; i < 10; i++) //заполнение массива
{
arr[i] = rand() % 100;
}
for (int i = 0; i < 10; i++) //вывод массива
{
cout << arr[i] << "\t";
}
cout << endl;
for (int i = 0; i < 10; i++) //узнаем кратность чисел
{
if (arr[i] % 4 == 0) {
sum = sum + arr[i];
}
}
cout << sum << endl;
system("pause");
return 0;
}
Объяснение:
Зашифроване повідомлення повинно піддаватися читанню тільки при наявності ключа.
Число операцій, необхідних для визначення використаного ключа шифрування за фрагментом шифрованого повідомлення і відповідного йому відкритого тексту, повинно бути не менше загального числа можливих ключів.
Число операцій, необхідних для розшифрування інформації шляхом перебору всіляких ключів повинно мати строгу нижню оцінку і виходити за межі можливостей сучасних комп'ютерів (з урахуванням можливості використання мережевих обчислень).
Знання алгоритму шифрування не повинно впливати на надійність захисту.
Незначна зміна ключа повинна приводити до істотної зміни виду зашифрованого повідомлення навіть при використанні одного і того ж ключа.
Структурні елементи алгоритму шифрування повинні бути незмінними.
Додаткові біти, що вводяться в повідомлення в процесі шифрування, повинні бути повністю та надійно сховані в зашифрованому тексті.
Довжина шифрованого тексту повинна бути рівною довжині вихідного тексту.
Не повинно бути простих і легко встановлюваних залежностей між ключами, які послідовно використовуються в процесі шифрування.
Будь-який ключ з безлічі можливих повинен забезпечувати надійний захист інформації.
Алгоритм повинен допускати як програмно, так і апаратну реалізацію, при цьому зміна довжини ключа не повинно вести до якісного погіршення алгоритму шифрування.