Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > бинари в дисцыфрацыю и на оборот


Автор: toader 29.6.2009, 16:01
вот есть код он определяет бинари и показывает базу.. как сделать наоборот? из базы в бинари..



Код

int main ()
{

    int n = 0;
        int result[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};

        cin >> n;

        int tmp = 0;
        int i = 0;

        while(n > 10)
        {
            tmp = n % 10;
            result[i] = tmp;
            n /= 10;
            i++;
        }

        result[i] = n;

        if(result[0] > 0) result[0] = 1; else result[0] = 0;
        if(result[1] > 0) result[1] = 2; else result[1] = 0;
        if(result[2] > 0) result[2] = 4; else result[2] = 0;
        if(result[3] > 0) result[3] = 8; else result[3] = 0;
        if(result[4] > 0) result[4] = 16; else result[4] = 0;
        if(result[5] > 0) result[5] = 32; else result[5] = 0;
        if(result[6] > 0) result[6] = 64; else result[6] = 0;
        if(result[7] > 0) result[7] = 128; else result[7] = 0;
        if(result[8] > 0) result[8] = 256; else result[8] = 0;
        double p = 1.0;
        while(i >= 0)
        {
            cout << result[i] << " ";
            p = result[0]+result[1]+result[2]+result[3]+result[4]+result[5]+result[6]+result[7]+result[8];
            i--;
        }

        cout << "= " << p << endl;

    cout << endl;
    }


Автор: GoldFinch 29.6.2009, 18:41
спс за код, поржал
алсо учи русский язык, кроме С++

Автор: andrew_121 29.6.2009, 19:13
Говнокод отдыхает smile  http://www.govnokod.ru/cpp
Ты случаем не оттуда коды берешь? smile 

Автор: triclosan 29.6.2009, 19:48
Ногами не бить

Код

#include <iostream>
#include <string>
using namespace std;

int getRng(string s, int v=0, int depth = 0)
{
    int size = s.size();
    if(size>0)
    {
        size--;
        int c = s.at( size )=='1'?1:0;
        s = s.substr(0, size);
        return getRng(s, v+(1<<depth)*c, depth+1) ;
    }
    else
        return v;
    
}

int main(int argc, char* *argv)
{
    string inp;
    char c;
    cout <<"Input binary representation: ";
    do
    {    
        c = cin.get();
        if( c=='0' || c=='1' )
            inp.push_back(c);
    }
    while (c != 0x0A);
    
    cout <<"Decimal representation of "<<inp <<" is: "<< getRng(inp)<<endl;
    
    return 0;
}


Добавлено через 11 минут и 45 секунд
и по сабжу

Код

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

int main(int argc, char* *argv)
{
    int x=0;
    string out;
    cout <<"Input decimal representation: ";
    cin >> x;

    while(x>0)
    {
        out.push_back( x%2?'1':'0'); 
        x>>=1;
    }
    reverse( out.begin(), out.end() );
        cout << "binary representation of "<< x << " is: "<< out<<endl;
    return 0;
}

Автор: andrew_121 29.6.2009, 20:12
Да вы чё!
Эта тема не раз обсуждалась!
В поиск, бегом!

Автор: zim22 29.6.2009, 20:30
Цитата(triclosan @  29.6.2009,  19:48 Найти цитируемый пост)
и по сабжу

Код

#include <bitset>
...
cout <<"Input decimal representation: ";

unsigned long x = 0;
cin >> x;
bitset<16> bs(x);
cout << bs << endl;

Автор: triclosan 29.6.2009, 21:32
Цитата(andrew_121 @  29.6.2009,  20:12 Найти цитируемый пост)
Эта тема не раз обсуждалась!

не интересно так

Цитата(zim22 @  29.6.2009,  20:30 Найти цитируемый пост)
Цитата(triclosan @  29.6.2009,  19:48 Найти цитируемый пост)
и по сабжу

Я так понял, что условия задачи запрещают bitset, что нет  smile ?

Автор: zim22 29.6.2009, 21:38
Цитата(triclosan @  29.6.2009,  21:32 Найти цитируемый пост)
Я так понял, что условия задачи запрещают bitset, что нет

это здесь написано было?
Цитата

 бинари в дисцыфрацыю

smile

Автор: triclosan 29.6.2009, 22:01
Цитата(zim22 @  29.6.2009,  21:38 Найти цитируемый пост)
это здесь написано было?

я с иронией smile 

Автор: andrew_121 29.6.2009, 22:53
Цитата(triclosan @  29.6.2009,  21:32 Найти цитируемый пост)
не интересно так

Хочешь интереса - в Центр помощи! Там тебя будут рады видеть smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)