//Данные вводятся из файла на диске и выводятся в файл и на экран. //Имена входного и выходного файлов задаются в командной строке. //Результат выполнения задания должен быть представлен в наглядной форме. // //Задание: //Дан массив из 12 беззнаковых чисел. Составить функцию, определяющую, //содержит ли двоичный код целого беззнакового числа М нули в разрядах //m и n. Используя эту функцию, определить количество тех элементов //массива, двоичные коды которых содержат нуль в битах 1 и 5. #include <crtdbg.h> #include <iostream> #include <time.h> #include <stdlib.h> typedef unsigned int u_int; typedef unsigned short u_short; /************************************************************************/ /* isZeroIn_m функция, определяющая, содержит ли двоичный код целого беззнакового числа М нуль в разряде m. */ /************************************************************************/ bool isZeroIn_m(u_int M, u_short m){ _ASSERTE(m < sizeof(u_int) * 8); return !(M & (1 << m)); } /************************************************************************/ /* isZeroIn_m_n функция, определяющая, содержит ли двоичный код целого беззнакового числа М нули в разрядах m и n. */ /************************************************************************/ bool isZeroIn_m_n(u_int M, u_short m, u_short n){ return isZeroIn_m(M, m) && isZeroIn_m(M, n); } int main(int argc, char* argv[]) { const int size = 12; u_int arr[size]; int i; //todo: initialize array! srand( (unsigned)time(NULL) ); for (i = 0; i < size; arr[i++] = rand() * rand()); //todo: initialize array! int count = 0; for (i = 0; i < size; i++) { if(isZeroIn_m_n(arr[i], 1, 5)) count++; }; std::cout<<"There are "<<count<<" elements with zero bit in 1, 5 place!"<<std::endl; } |