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

Работа с битами. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Методы поиска в различных структурах данных http://www.cyberforum.ru/cpp-beginners/thread219093.html
у мя просьба,есть ли методы поиска???(с++/алгоритмы):read: 1)Таблица символов, 2)Деревья бинарного поиска, 3)Хеширование. заранее спс......
C++ С++/Сортировка слияние/(Что выполняет...?;(плз)/ Большая просьба,помоги мне ответить Это пирамидальная сортировка с++ Заранее спасибо #include<conio.h> #include <stdio.h> #include <stdlib.h> #include <time.h>// Что выполняет? http://www.cyberforum.ru/cpp-beginners/thread219089.html
C++ польская запись,нашел какой то код
char * pol(char * in, char * out) { st *OPR=NULL; int k,point; k=point=0; while(in!='\0' && in!='=') // пока не дойдем до равно '=' { if(in==')') // если очередный символ - ')' { while((OPR->c)!='(') // то удаляем из стека в
Наследование классов C++
Создайте исходный базовй класс building для хранения числа этажей и комнат в здании, а также общую площадь комнат. Создайте класс house, который наследует класс building и хранит число ванных комнат и число спален. Создайте произвольный класс office, который наследует класс building и хранит число огнетушителей и телефонов. Создайте объекты указанных классов, заполните их данными и, с помощью...
C++ Проблема с массивами http://www.cyberforum.ru/cpp-beginners/thread219078.html
#include <iostream> #include <cstdlib> #include <ctime> #include<fstream> using namespace std; ofstream fl; void f1 (const int *s, const int *rmin, const int *rmax, int *p) {
C++ c++/newbies 7. Информация об участниках спортивных соревнований содержит наиме- нование страны, название команды, ФИО игрока, игровой номер, возраст, рост и вес. Вывести информацию о самой молодой команде. #include "stdafx.h" #include <iostream> #include <string> using namespace std; int main() { подробнее

Показать сообщение отдельно
dakota412
22 / 22 / 0
Регистрация: 14.02.2010
Сообщений: 50
23.12.2010, 22:35     Работа с битами.
я думаю сначала лучше всего определить просто количество знаков в двоичной записи числа. Например для неотрицательных чисел: Если число меньше или равно 1, то в бинарной записи только 1 знак. Если меньше или равно 3 - 2 знака, <= 7 - 3 знака. Ну и так далее. Подумай как организовать это в цикле и получить количество значащих цифр (пусть их будет n) в бинарной записи числа. Затем используй побитовый сдвиг (если не знаешь что это почитай на wiki - я в своё время именно так про это и узнал. Проделывая его n раз в цикле, каждый раз пробуй побитово умножать полуившееся число на 1 (& - операция побитового умножения, тоже если что прочти на wiki). Если будет получаться 0, то последняя цифра бинарной записи твоего числа 0 (тк 0 & 1 = 0). Если 1, то последняя цифра 1 (1 & 1 = 1). В зависимости от этого плюсуй счётчики нулей и единиц (просто создай специальные переменные для этого, скажем int nl, one). В конце ты имеешь кол-во нулей и единиц. Задача решена. Не стал писать за тебя код, ведь ты же начинающий, а я по себе знаю, что в начале нужно посидеть и самому подумать над такими вещами. Удачи тебе в изучении))
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru