На C++ как проверить кратность 16 и не кратность 256 через битовые операции?


restIess: Для 16 сдвинуть на 4 бита вправо, затем влево, затем сравниваем с заданным числом
restIess: Ну а 256 нужно сдвигать на 8 бит и поставить знак !=

Ответы

Ответ дал: restIess
3

#include<iostream>

using namespace std;

int multiplicity16(int n)

{

   return (((n >> 4) << 4) == n);

}

int UNmultiplicity256(int n) {

   return (((n >> 8) << 8) != n);

}

signed main()

{

   setlocale(LC_ALL, "Rus");

   int n;

   cout << "Введите число, которое проверяем на кратность 16: ";

   cin >> n;

   if (multiplicity16(n))

       cout << "YES" << endl;

   else

       cout << "NO" << endl;

   cout << "\nВведите число, которое проверяем на не кратность 256: ";

   cin >> n;

   if (UNmultiplicity256(n))

       cout << "YES" << endl;

   else

       cout << "NO" << endl;

   return 0;

}

Вас заинтересует