С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Побитовые сдвиги - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Лежит ли треугольник внутри окружности радиуса R http://www.cyberforum.ru/cpp-beginners/thread921717.html
Спасите пожалуйста... очень нужна эта прога... знаю, что самое элементарное, но все же... само задание: Заданы координаты вершин треугольника (x1,y1), (x2,y2), (x3,y3). Определить, лежит ли...
C++ приложение для создания файлов C++ (я начинающий, не судите строго) #include <iostream> #include <fstream> #include <windows.h> using namespace std; int main() { SetConsoleOutputCP(1251); char nach={"#include <iostream>\n#include <windows.h>\nusing namespace... http://www.cyberforum.ru/cpp-beginners/thread921712.html
Можно ли использовать такую конструкцию? C++
Здраствуйте! Нужно ввести несколько работником тоесть их ФИО и зарплату. Можно ли использовать для ввода ФИО работников двумерный массив string и работать с ним? Потом еще надо будет отсортировать...
Как в C++ присвоить массив? C++
у меня есть следующий код: ... bool next_world,, world; ... world = next_world; Однако компилятор (gcc) ругается на подобное присвоение:
C++ numeric_limits и int8_t http://www.cyberforum.ru/cpp-beginners/thread921662.html
Eсли скомпилировать и запустить auto max = numeric_limits<int8_t>::max(); cout << max << endl << sizeof(max) << endl; std::bitset<8> x(max); std::cout << x; То получаю вывод:...
C++ Существует ли элемент в "сложном" векторе Здравствуйте, недавно столкнулся с такой проблемой Есть такая структура и последующий вектор: struct cell { char symbol; int x; int y; }; подробнее

Показать сообщение отдельно
razor_ua
11 / 11 / 0
Регистрация: 20.05.2011
Сообщений: 71

Побитовые сдвиги - C++

11.07.2013, 19:49. Просмотров 700. Ответов 5
Метки (Все метки)

Был на собеседовании, была задачка, вроде такая:

Есть функция, которая принимает char a (1 байт)
Нужно определить количество битов, установленных в 1 в этом байте.
Т.е., например, если а = '5', то ответ будет 2, т.к. 5 = 101.

Представлял как нужно сделать, но не смог написать...

Решать думал так:
1я итерация: сдвигаем вправо на 7 ( a >> 7 ), вправо на 0 (a << 0)
2я ит.: влево на 6, вправо на 1.
и т.д.
И при каждой итерации проверять на 1. есть она или нет.
Выходит если 5 = 0000 0101
1я ит.: 1
2я : 0
3я : 1
...

вот никак не могу реализовать. хрень все время какая-то получается. Помогите, плз.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.