Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2014, 23:12   #1
andrew_ryaba
Пользователь
 
Регистрация: 29.12.2013
Сообщений: 21
По умолчанию С++. Побитовая обработка (найти числа с единицей в разрядах)

Здравствуйте! Помогите, пожалуйста, с такой задачей:
Определить количество чисел, имеющих единицу в третьем и пятом разрядах числа. Факт принадлежности к такому множеству чисел (‘0’ – не принадлежит, ‘1’ – принадлежит) сохранить в отдельном массиве.

Дополнительные условия реализации:
В одномерном массиве чисел 16-битного целого типа (заполняется случайными числами в максимальном диапазоне для данного типа данных) выполнить двоичную обработку с обязательным применением функций. Написать функцию вывода на экран элементов массива в десятичной и двоичной системе счисления. Исходный и результирующий массивы хранятся в структуре. Побитовая обработка осуществляется с применением шестнадцатеричной системы счисления.

Код:
#include "stdafx.h"
#include<iostream>
#include<cstdlib>
#include<ctime>

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
using namespace std;
int s[16];

int main()
{
	int i, j;
	cout << "10 random numbers (1..100): " << endl;
	srand(time(NULL));
	for (i = 0; i < 11; s[i] = (rand() % 100 + 1), i++);
	vivod;
	return 0;
}
int vivod()
{
	int i, j;
	for (i = 0; i < 11; i++)
	{
		cout << s[i] << " ";
		for (j = 15; j >= 0; --j)
		{
			cout << (int)((s[i] >> j) & 1);
		}
		cout << "\n";
	}
	cin.get();
	return 0;
}
int proverka()
{
	cout.setf(ios::hex, ios::hex);
	int i, j, r[16];
	int maska = 0x0028;
	for (i = 0; i < 11; i++)
		if (s[i] & maska)=
}
Насколько я понял, в последней строчке мне нужно умножить (либо применить операцию xor) на маску, и что-то получить...
Хотя, возможно, это и не так, и надо как-то по-другому делать?
andrew_ryaba вне форума Ответить с цитированием
Старый 17.10.2014, 01:27   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,431
По умолчанию

Код:
if (s[i] & maska == maska)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
найти числа, которые состоят из цифр первого числа Camelot_2012 Общие вопросы C/C++ 0 05.12.2012 05:03
в выделенных ячееках найти числа вне диапазона 5.43 до 5.47 заменить на случаные числа в этом диапазоне? alx83 Microsoft Office Excel 1 22.06.2012 05:37
Задачи в ТурбоПаскаль: найти числа Армстронга и просуммировать числа в последовательности номера которых простые числа Lena1808 Помощь студентам 1 17.05.2012 08:00
ДАНЫ 4 ЧИСЛА X Y Z W составит программу найти произведение все положительные нечетные числа Woland-itn Паскаль, Turbo Pascal, PascalABC.NET 3 23.03.2008 21:49
Побитовая запись в файл на C/C++ londoner Общие вопросы C/C++ 4 19.11.2007 23:09