Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Задача на биты. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Числовой массив и диаграммы http://www.cyberforum.ru/cpp-beginners/thread388271.html
помогите написать программу : Числовой массив, в котором могут быть как положительные, так и отрицательные значения, вывести в виде вертикальной диаграммы, отметив другими цветами наибольшие и...
C++ работа с одномерными массивами Добрый вечер (может комуто надо сказать уже доброе утро). я уже обращался к вам с вопросом: Есть массивы X,Y и Z одинаковой длины n. Сформировать массив U каждый элемент которого равен ... http://www.cyberforum.ru/cpp-beginners/thread388259.html
C++ Задача Файлы
Разработать алгоритм и составить программу для решения : Напишите программу, которая составляет частотный словарь заданного текста, пропуская при этом символы - разделители. Словом будем считать...
C++ Зада по строкам
При написании программ использовать нуль–терминированные строки и работать только с типом char *. Длина каждой строки не превосходит 300 символов. Словом, входящим в состав строки, назовѐм...
C++ Работа со структурами http://www.cyberforum.ru/cpp-beginners/thread388246.html
Создать массив структур Название файла, объем файла, дата создания. И вывести на печать записи объем которых меньше 2Кб. Спасибо всем за помощь!!!
C++ Объединение массивов Всем добрый вечер, лазил по сайту, ничего толком не нашел. Вопрос такой : как объединить два вводимых с клавиатуры массива в третий? если можно наиболее простым способом. Добавлено через 40... подробнее

Показать сообщение отдельно
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
21.11.2011, 08:49
alkagolik, сложное решение получилось.
Биты нумеруются с первого:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
int main(int argc, char *argv[]) {
  int firstCountableBit = 3;
  int lastCountableBit = 13;
  int number;
  std::cout << "Enter number: ";
  std::cin >> number;
  int zeroes = 0;
 
  // подсчет основан на приведении типов
  // работает, потому что истинным считается любое значение, кроме нуля
  // и истинное значение переводится в единицу при числовом вычислении.
  for (int i = firstCountableBit - 1; i < lastCountableBit; ++i)
    zeroes += !(number & (1 << i));
    // более надежно использовать оператор "?"
    //zeroes += (number & (1 << i)) ? 0 : 1;
 
  std::cout << number << " haz " << zeroes << " zero bit(s) from bit " <<
    firstCountableBit << " up to bit " << lastCountableBit << " inclusive." <<
    std::endl;
  return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru