Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 9
1

Нулевые биты указанного числа

23.04.2013, 21:51. Просмотров 1187. Ответов 7
Метки нет (Все метки)

Форумчане, выручайте, нужно написать функцию, которая для заданного целого числа x вычисляет количество нулевых битов в этом числе (в коде возможно использование void) . Спасибо огромное за помощь!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.04.2013, 21:51
Ответы с готовыми решениями:

... В четных байтах числа в двоичной системе переместить нулевые биты в старшие биты, а в нечетных байтах – в младшие ...
Доброго времени суток всем, столкнулся с проблемой по С++,требуется написать программу: которая...

Const char* и нулевые биты
Столкнулась с такой проблемой: есть переменная типа string, например string str = "A"; Мне...

Четные и нечетные биты числа переписать в отдельные числа
Дано длинное целое неотрицательное число. Получить два коротких целых неотрицательных числа, одно...

Ввести целое число A. Инвертировать все биты с 4 по 8, включая эти биты. Вывести результат
нужна помощь в битовых операциях.Ввести целое число A. Инвертировать все биты с 4 по 8, включая...

7
быдлокодер
1718 / 905 / 106
Регистрация: 04.06.2008
Сообщений: 5,613
23.04.2013, 22:17 2
Ну вот с помощью этой функции преобразуй число в строку и подсчитай в ней ноли
http://www.cplusplus.com/reference/cstdlib/itoa/
1
397 / 353 / 36
Регистрация: 11.10.2010
Сообщений: 1,907
23.04.2013, 22:19 3
Цитата Сообщение от kravam Посмотреть сообщение
Ну вот с помощью этой функции преобразуй число в строку и подсчитай в ней ноли
http://www.cplusplus.com/reference/cstdlib/itoa/
а что побитовые операции уже отменили?
1
1346 / 986 / 312
Регистрация: 28.07.2012
Сообщений: 2,743
23.04.2013, 22:20 4
ETALONMAX, функция __popcnt подсчитывает кол-во единичных бит. Отсюда легко получить кол-во нулевых бит.
1
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 9
23.04.2013, 22:27  [ТС] 5
Напиши пожалуйста код, я в С++ далек, серьезно Благодарочка!
0
380 / 351 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
23.04.2013, 22:33 6
ETALONMAX, как-то так)

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
32
33
34
35
36
37
38
39
40
41
#include <iostream>
#include <iomanip>
using namespace std;
 
int displayBits(void *);
 
int main()
{
    unsigned number;
 
    cout << "Enter the number: ";
        cin >> number;
 
    cout << "\nNumber: " << displayBits(&number);
 
    cout << "\n\n";
    return 0;
}
 
int displayBits(void *value)
{
    int size = sizeof(value) * 8, *temp = (int*) value;
    unsigned c, displayMask = 1 << (size - 1), number(0);
 
    cout << setw(7) << "value = ";
 
    for(c = 1; c <= size; c++)
    {
        if((*temp & displayMask) == 0)
            ++number;
 
        cout << (*temp & displayMask ? '1' : '0');
            *temp <<= 1;
 
        if(c % 8 == 0)
            cout << " ";
    }
 
    cout << "\n";
    return number;
}
1
быдлокодер
1718 / 905 / 106
Регистрация: 04.06.2008
Сообщений: 5,613
23.04.2013, 22:41 7
Цитата Сообщение от aram_gyumri Посмотреть сообщение
а что побитовые операции уже отменили?
Что-то я упустил где-то, ни одной не знаю, которая подсчитывала количество нулевых бит.
1
1346 / 986 / 312
Регистрация: 28.07.2012
Сообщений: 2,743
23.04.2013, 22:48 8
Вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <intrin.h>
#include <iostream>
 
using namespace std;
 
void main( void )
{
  unsigned num = 9;
  cout << "Number:" << num << '.' << endl;
  cout << "Number of zero bits: " << 8 * sizeof(unsigned) - __popcnt(num) << endl;
  system("pause");
}
Добавлено через 6 минут
Еще можно получить нужное через std::bitset. Либо, как писали выше, через побитовые операции.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.04.2013, 22:48

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Определить, действительно ли сумма цифр заданного числа меньше указанного числа а
Дано натуральное число. а) Верно ли, что сумма его цифр меньше a? б) Верно ли, что произведение...

Инвертировать биты числа
установить в числе 347 биты если они не установлены,а если установлены снять

Создать функцию которая выводит на экран, числа от 1 до указанного числа
Создать функцию которая выводит на экран, числа от 1 до указанного числа Вот я это написал:...

Занулить четные биты числа
Написать программу, которая позволит ввести число типа unsigned short int с клавиатуры, напечатать...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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