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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ EUREKA http://www.cyberforum.ru/cpp-beginners/thread267402.html
Подскажите где можно скачать прогу EUREKA 64-bit???
C++ Классы и объекты на С++ Задание: Класс Triangle (треугольник). Класс хранит Декартовы координаты трех углов треугольника. Конструктор принимает три группы координат. Должны быть предусмотренные функции-элементы, которые... http://www.cyberforum.ru/cpp-beginners/thread267399.html
элемент массива C++
Удалить из вещественного массива элементы, наименее отличающиеся от его среднего арифметического. Создать функции для вычисления среднего значения элементов массива и удаления элемента. вот что у...
Ошибка в Visual Studio 2010 C++
Здравствуйте, буду признателен, если поможете разобраться) Установил вот Visual Studio 2010, решил опробовать, а он при компиляции вот что выдает: с чем это может быть связано?)
C++ Структуры, работа с файлами, блоковый ввод-вывод http://www.cyberforum.ru/cpp-beginners/thread267368.html
Сформировать двоичный файл из элементов, заданной в варианте структуры, распечатать его содержимое, выполнить удаление и добавление элементов в соответствии со своим вариантом, используя для поиска...
C++ Выдать факториал числа Начал изучать С++, до циклов всё ясно, но вот дальше возникли проблемы 1) Пользователь вводит с клавиатуры число, программа должна выдать факториал этого числа (факториал - произведение всех... подробнее

Показать сообщение отдельно
Batarchuk
0 / 0 / 0
Регистрация: 27.03.2011
Сообщений: 28

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

31.03.2011, 00:56. Просмотров 766. Ответов 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru