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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Batarchuk
0 / 0 / 0
Регистрация: 27.03.2011
Сообщений: 28
#1

Программа подсчёта битов - C++

31.03.2011, 00:56. Просмотров 757. Ответов 2
Метки нет (Все метки)

Добрый вечер, кто не спит! Скажите пожалуйста, я вот написал программку, по условию она должна считать количество битов "00" (пар нолей) целого числа. Но когда ввожу тестовое число 2565989889 то ответ не правильный. Может ли кто-то подсказать с чем это связано и как следует подкоректировать программу. Вот код :
#include <iostream>
#include <cstdlib>
#include <stdio.h>
#include <conio.h>
using namespace std;
void print_bits (unsigned n)
{
int bit;
for (bit = sizeof(unsigned)*8 - 1; bit >= 0; bit--)
{
((n >> bit) & 01) ? putchar ('1') : putchar ('0');
if (bit % 4 == 0) putchar (' ');
}
}

main ()
{
char con;

do
{
unsigned n;
int count = 0;
cout << "Input int" << endl;
cin >> n;
print_bits (n);
n = ~ n;
do
{
if (n & 01)
{
n >>= 1;
}
if (n & 01)
{
count++;
n >>= 1;

}

else n >>= 1;


}

while (n != '\0');
cout<<endl;

cout << "Number of *00* = " << count << endl;
cout <<"Continue? (y/n)";
cin>>con;
}
while (con =='y');

system ("PAUSE");
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2011, 00:56     Программа подсчёта битов
Посмотрите здесь:

Программа подсчёта монет - C++
Даны монеты номиналом 1, 2, 5, 10, 25, 50. Нужно написать программу, в которую вводится любое значение(сумма монет, т.е может быть: 60,...

НЕ работает программа подсчёта! - C++
Код писался в MVS 2012 ultimate суть программы состоит в том,чтобы ввести количество пенсо,шилингов, фунтов и пересчитать их с выводом...

Программа подсчёта букв - C++
Написать программу подсчета букв е, во введенной строке. Заранее благодарю.

Программа на C++ для подсчёта суммы ряда, - C++
Напишите программу, пожалуйста для нахождения суммы ряда на C++ можно через функцию Сама фотка ряда и его закономерность: P.S....

Программа для подсчёта денег в секундах - C++
Здравствуйте, прошу помочь! Мне нужно сделать программу, которая будет подсчитывать деньги в секундах. К примеру час услуги стоит 600...

Нужна программа на C++ для подсчёта ряда - C++
Задумки: // ... S = 0; int i = 0; do { S += pow(x, 2*i + 1) / (2*i + 1); } while (&lt;проверка точности&gt;) S *=...

Программа для подсчёта суммы 10 вводимых чисел - C++
Написать программу подсчета суммы 10 чисел, вводимых с клавиатуры, с использованием оператора do...while. Заранее благодарю.

Программа подсчёта количества символов, букв, слов и предожений - C++
Нужно написать программу 1) Имя передаётся через командную строку 2) Программа должна подсчитывать количество: 1) символов; 2) символов...

Программа, которая считает количество битов. - C++
Привет всем, нужно написать функцию, которая возвращает количество битов с значением '1' в числе типу short. Заранее спасибо.

Программа подсчёта логических и физических строк в коде (исходнике другой программы на C++) - C++
Подскажите алгоритм хотя бы....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
2923 / 1352 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
31.03.2011, 02:09     Программа подсчёта битов #2
Оверфлоу?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <ctime>
 
size_t CountDoubleZeroes(long long int number) {
  size_t result = 0;
  while (number != 0) {
    if ((number & 3) == 0) {
      ++result;
      number >>= 1;
    }
    number >>= 1;
  }
  return result;
}
 
void PrintBinary(long long int number) {
  if (number != 0) {
    printf("%Ld", number & 1);
    PrintBinary(number >> 1);
  }
}
 
int main(int argc, char *argv[]) {
  srand(time(NULL));
  long long int number = rand();
  PrintBinary(number);
  printf("\n%Ld has %d double zeroes.\n", number,  CountDoubleZeroes(number));
  return 0;
}
Batarchuk
0 / 0 / 0
Регистрация: 27.03.2011
Сообщений: 28
31.03.2011, 17:01  [ТС]     Программа подсчёта битов #3
Спасибо, а что такое "Оверфлоу"?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru