Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Методы поиска в различных структурах данных https://www.cyberforum.ru/ cpp-beginners/ thread219093.html
у мя просьба,есть ли методы поиска???(с++/алгоритмы):read: 1)Таблица символов, 2)Деревья бинарного поиска, 3)Хеширование. заранее спс......
С++/Сортировка слияние/(Что выполняет...?;(плз)/ C++
Большая просьба,помоги мне ответить Это пирамидальная сортировка с++ Заранее спасибо #include<conio.h> #include <stdio.h> #include <stdlib.h> #include <time.h>// Что выполняет?
C++ польская запись,нашел какой то код char * pol(char * in, char * out) { st *OPR=NULL; int k,point; k=point=0; while(in!='\0' && in!='=') // пока не дойдем до равно '=' { if(in==')') // если очередный символ - ')' {... https://www.cyberforum.ru/ cpp-beginners/ thread219080.html C++ Наследование классов https://www.cyberforum.ru/ cpp-beginners/ thread219079.html
Создайте исходный базовй класс building для хранения числа этажей и комнат в здании, а также общую площадь комнат. Создайте класс house, который наследует класс building и хранит число ванных комнат...
C++ Проблема с массивами
#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 https://www.cyberforum.ru/ cpp-beginners/ thread219069.html
7. Информация об участниках спортивных соревнований содержит наиме- нование страны, название команды, ФИО игрока, игровой номер, возраст, рост и вес. Вывести информацию о самой молодой команде. ...
C++ блок-схема https://www.cyberforum.ru/ cpp-beginners/ thread219067.html
есть прога. но не умею составлять блок-схемы#include <stdio.h> #include <math.h> void main() { int i, *p; int mas; double res; printf ("Vvedite 5 chisel\n"); p = mas;
Чтение из fstream C++
Нужно считать из файла название станции, время прибытия и отбытия поезда, для дальшейших действий. main.cpp #include "train.h" #include "streams.h" #include <iostream> #include <locale.h>...
C++ Списки Доброго времени суток. Прошу помощи с задачей на списки. Определить входит ли список L1 в список L2. Рабочая версия программы некорректна, при вводе повторяющихся значений она выдает неверный ответ.... https://www.cyberforum.ru/ cpp-beginners/ thread219040.html C++ квадрат Привет ещё раз). Помогите пожалуйста решить ещё одну, не совсем понятную задачу , на СИ.. суть задачи В каждую из шестнадцати клеток квадрата 4х4 расставить числа 1,2...16 так, чтобы сумы чисел в... https://www.cyberforum.ru/ cpp-beginners/ thread219034.html
польская запись C++
как написать программу,которая математическое выражение переводит из обычного запися в польскую запись с помощью стека?...
C++ Перехватить значение нажатой клавиши https://www.cyberforum.ru/ cpp-beginners/ thread219029.html
Привет всем. обыскался в святом гугле , но так и не нашёл, хотя много вроде материала , но не совсем то. у меня вот какое дело : после того как нажимается клавиша , нужно сравнить её с заданным...
3973 / 2026 / 727
Регистрация: 29.11.2010
Сообщений: 4,343
23.12.2010, 22:26 0

Работа с битами. - C++ - Ответ 1233025

23.12.2010, 22:26. Показов 2862. Ответов 18
Метки (Все метки)

Ответ

Здрасте.
Задача явно на битовые операторы. Сдвигайте вправо число, пока оно больше нуля, и сравнивайте первый бит с единицей (логическим И 1). Если 0 вычитаем единицу, если 1 -- добавляем. Если результат положительный -- единиц больше, если результат отрицательный -- нулей больше, если 0 -- поровну.
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
/*
  Определить на сколько в числе А больше значащих битов, что равны единице,
  чем битов, что равны нулю. Помогите пожалуйста. 
*/
#include <cstddef>
#include <cstdio>
#include <cstdlib>
#include <ctime>
 
const signed int bits_diff(const int &a_number) {
  int result = 0;
  int temporary_number = a_number;
  while (temporary_number > 0) {
    result += ((temporary_number & 1)?1:-1);
    temporary_number = temporary_number >> 1;
  }
  return result;
}
 
int main(int argc, char *argv[]) {
  srand(static_cast<unsigned int>(time(NULL)));
  int a_number = rand();
  int bits_differs = bits_diff(a_number);
  printf("%d ", a_number);
 
  if (bits_differs > 0)
    printf("has %d more 1, than 0.\n", bits_differs);
  else
  if (bits_differs < 0)
    printf("has %d more 0, than 1.\n", -bits_differs);
  else
    printf("has same number of 0 and 1.\n");
 
  int exit_key;
  scanf("%d", &exit_key);
  return 0;
}


Вернуться к обсуждению:
Работа с битами. C++
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.12.2010, 22:26
Готовые ответы и решения:

Работа с битами И Работа с символьными данными
1. Ввести 8 символов. В символе с наибольшим кодом заменить 5-й бит единицей, а в символе с...

Работа с битами
три раза писал но все равно не получается((( 1-)Ввести последовательность из 8 символов. Сравнить...

Работа с битами
Стоит задача: вывести все двоичные коды чисел от 0 и до 2n-1. Сделать напролом могу(переводить в...

Работа с битами
В общем вот локальная проблема: есть int, который выступает в роли сетки нулей и единиц, два...

18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.12.2010, 22:26
Помогаю со студенческими работами здесь

Работа с битами
Не могу понять, почему не правильно работает программа. Программа зашифровывает строку, выводит,...

Работа с битами
Я уже задолбался... :wall: Может мне кто нибудь подскажет как из 00111010 (58) получить...

работа с битами
доброй ночи, форумчане, необходима ваша помощь) как и всем тут... вот изучаю с++ и добрался до...

Работа с битами.
помогите!! как писать эту на программе с++ Ввести последовательность из 8 символов. Сравнить 5-й...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru