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

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

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

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

03.05.2014, 17:46. Просмотров 502. Ответов 4
Метки нет (Все метки)

Помогите пожалуйста решить задачи! Столько бьюсь с ними, а не получается. Я гуманитарий, для меня сложно их решить, но оочень хочется понять все!

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++
Напишите программу, которая определяет, сколько единиц содержится в двоичном представлении переменной типа char C++
Написать функцию, возвращающую случайное число от 2 до 6 C++
Определить в двоичном представлении числа максимальное количество расположенных рядом единиц C++
C++ Написать программу в которой необходимо определить каких битов больше в двоичном представлении целого значения
Как исправить ошибку невозможно преобразовать аргумент 1 из "unsigned int" в "unsigned int []"? C++
C++ Реализовать функцию возведения целого числа в квадрат, возвращающую значение типа int
C++ Определить, каких цифр больше в двоичном представлении натурального числа N-нулей и единиц

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Керра
 Аватар для Керра
1275 / 443 / 45
Регистрация: 24.08.2011
Сообщений: 2,131
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;
 }
Керра
 Аватар для Керра
1275 / 443 / 45
Регистрация: 24.08.2011
Сообщений: 2,131
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
Ответ Создать тему
Опции темы

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