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

Написать функцию int bitcount(unsigned x), возвращающую число единиц в двоичном представлении x - C++

Восстановить пароль Регистрация
 
Kseni1995
0 / 0 / 0
Регистрация: 03.05.2014
Сообщений: 29
03.05.2014, 17:46     Написать функцию int bitcount(unsigned x), возвращающую число единиц в двоичном представлении x #1
Помогите пожалуйста решить задачи! Столько бьюсь с ними, а не получается. Я гуманитарий, для меня сложно их решить, но оочень хочется понять все!

1. Побитовые операторы. Напишите функцию int bitcount(unsigned x), возвращающую число единиц в двоичном представлении числа х. Указание: создайте величину onebit, имеющую единицу в младшем правом разряде; в цикле сравнивайте побитово x с onebit и сдвигайте на 1 влево, пока onebit не станет 0.

Подскажите!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2014, 17:46     Написать функцию int bitcount(unsigned x), возвращающую число единиц в двоичном представлении x
Посмотрите здесь:

C++ Определить, сколько единиц содержится в двоичном представлении переменной типа char
Как написать такое явное преобразование из double в unsigned long int C++
C++ Вывести введённое неотрицательное число в двоичном, восмиричном и шестнадцатеричном представлении
C++ Написать функцию, которая предлагает пользователю ввести с клавиатуры три числа типа unsigned int
Определить, каких цифр больше в двоичном представлении натурального числа N – нулей или единиц C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Керра
Модератор
 Аватар для Керра
1270 / 438 / 45
Регистрация: 24.08.2011
Сообщений: 2,123
03.05.2014, 18:23     Написать функцию int bitcount(unsigned x), возвращающую число единиц в двоичном представлении x #2
C++
1
2
3
4
5
6
7
8
9
10
int bitcount(unsigned x)
{
    int onebit = 1, count = 0;
    while (x != 0)
    {
        if (x & onebit == 1)
            count++;
        x >>= 1;
    }
}
Kseni1995
0 / 0 / 0
Регистрация: 03.05.2014
Сообщений: 29
03.05.2014, 19:40  [ТС]     Написать функцию int bitcount(unsigned x), возвращающую число единиц в двоичном представлении x #3
Огромное спасибо вам!
Только хотелось бы узнать,
Цитата Сообщение от Керра Посмотреть сообщение
x >>= 1;
эта строчка означает сдвиг вправо? Просто в задаче требуется сдвигать влево..или я что-то путаю?
stawerfar
 Аватар для stawerfar
141 / 55 / 4
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
03.05.2014, 23:45     Написать функцию int bitcount(unsigned x), возвращающую число единиц в двоичном представлении x #4
Не имеет значения в контексте твоей задачи но все же если надо то вот
C++
1
2
3
4
5
while(onebit)
 {
   if (x & onebit) count++;
   onebit <<= 0x1;
 }
Керра
Модератор
 Аватар для Керра
1270 / 438 / 45
Регистрация: 24.08.2011
Сообщений: 2,123
04.05.2014, 15:29     Написать функцию int bitcount(unsigned x), возвращающую число единиц в двоичном представлении x #5
Kseni1995, путаете. мы сдвигаем вправо, чтобы узнать крайний правый бит. у onebit единственный бит равен 1 - крайний правый. поэтому результат от побитовой операции &(и) будет равен крайнему правому биту нашего числа.
Yandex
Объявления
04.05.2014, 15:29     Написать функцию int bitcount(unsigned x), возвращающую число единиц в двоичном представлении x
Ответ Создать тему
Опции темы

Текущее время: 17:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru