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

Подскажите пожалуйста - C++

Восстановить пароль Регистрация
 
M1kloFFi
0 / 0 / 0
Регистрация: 14.10.2012
Сообщений: 23
06.01.2014, 21:10     Подскажите пожалуйста #1
Добрый день товарищи программисты.
Столкнулся с задачей и никак не могу решить...
Точнее её решил, но не совсем по условию.
Пожалуйста подскажите с чего начать решение данной задачи?
Кликните здесь для просмотра всего текста
Реализуйте функцию, которая принимает один байт (char) как параметр и выводит количество битов установленных в 1цу в данном байте. Например, если функция получила число "5", то функция выведет ответ "2".
а) Оптимизируйте решение по скорости выполнения. (подсказка: char может принимать всего 256 значений).
b) Оптимизируйте решение по используемой памяти (подсказка: воспользуйтесь побитовыми операциями)


Мое решение:
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <bitset>
#include <string>
#include <sstream>
using namespace std;
static const unsigned BIT_LENGTH = 8; 
 
int main(){
    setlocale(0,"");
 
    int in;
    int binary=0;
    cin >> in;
    bitset<BIT_LENGTH> a = in;
 
    cout <<  " в десятичной " << in << " в двоичной " << a << endl;
 
    stringstream ss;
    ss << a;
    string k;
    ss >> k;
 
    for(int i=0; i<k.length(); i++)
    {
        if(k[i]=='1') binary++;
        cout << k[i] << " d=" << binary << endl;
    }
    
    system("PAUSE");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.01.2014, 21:10     Подскажите пожалуйста
Посмотрите здесь:

C++ Пожалуйста подскажите новичку
подскажите новичку, пожалуйста.. C++
C++ Подскажите пожалуйста!!!
C++ Подскажите пожалуйста
C++ Подскажите, пожалуйста
Подскажите пожалуйста! C++
C++ Подскажите, пожалуйста.
Подскажите пожалуйста C++
C++ Подскажите пожалуйста
подскажите пожалуйста C++
Подскажите пожалуйста C++
C++ Подскажите пожалуйста

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5284 / 4803 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.01.2014, 21:47     Подскажите пожалуйста #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
 
void f(char n)
{
    int binary = 0;
    for (int i = 0; i < 8; ++i)
    {
        if ((n & 1) == 1) ++binary;
        n = n >> 1;
    }
    cout << binary << endl;
}
 
int main()
{
    int in;
    cin >> in;
    f(in);
    
    system("PAUSE");
    return 0;
}
Yandex
Объявления
06.01.2014, 21:47     Подскажите пожалуйста
Ответ Создать тему
Опции темы

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