Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> перевод в двоичную систему. 
:(
    Опции темы
Prokazza
  Дата 30.4.2007, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 27.4.2007

Репутация: нет
Всего: нет



покажите плз как переводить число в двоичную систему.
вернее как его переводить в с++  smile 
нашел темы про 10тичные. у меня была идея записать как деления дробью.
т.е. число делиться на два и при деление на два можно умножить только 1
а как ноль в остаток запихнуть недоперло. по формуле там гемар со степенями.
может как то проще можно а я незнаю.  smile 
PM MAIL   Вверх
Prokazza
Дата 1.5.2007, 00:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 27.4.2007

Репутация: нет
Всего: нет



спачибо... но можно болие понятно ? *на пальцах так сказать*  smile 
PM MAIL   Вверх
Xenon
Дата 1.5.2007, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1529
Регистрация: 12.4.2006

Репутация: 11
Всего: 50



Из 10чной в 2чную?
Код

int binary(int num, int buf = 0, int digit = 1)
{
    if (num <= 0) return buf;
    buf += (num % 2) * digit;
    binary( num /= 2, buf, digit *= 10);
}

int main(int argc, char* argv[])
{
    int num = 20;
    int buf = num;
    std::cout << binary(num);
    std::cin.sync();
    std::cin.get();
    return 0;
}



--------------------
user posted image  
PM MAIL   Вверх
Prokazza
Дата 1.5.2007, 00:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 27.4.2007

Репутация: нет
Всего: нет



нет )))
просто число любое простое число в двоичную =)
PM MAIL   Вверх
Xenon
Дата 1.5.2007, 00:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1529
Регистрация: 12.4.2006

Репутация: 11
Всего: 50



Prokazza, а у сложные какие-то числа что ли? smile Простые числа, в твоем понимани, и есть 10чные - 5,6,2452345,7,4? 


--------------------
user posted image  
PM MAIL   Вверх
Prokazza
Дата 1.5.2007, 01:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 27.4.2007

Репутация: нет
Всего: нет



ну в принцапи да ) точно у нас же (у человеков) 10тичная система исчисленяи )
т.е. твой код число человеческое 91отчное) переводит в двоичную?
PM MAIL   Вверх
Xenon
Дата 1.5.2007, 01:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1529
Регистрация: 12.4.2006

Репутация: 11
Всего: 50



Из человеческого десятичного, в машинное и страшное двоичное smile


--------------------
user posted image  
PM MAIL   Вверх
dizzy1984
Дата 1.5.2007, 08:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 15.2.2007

Репутация: 3
Всего: 25



Код

int i;
char buf[256];
itoa(i,buf,2);
printf ("binary: %s",buf);


Это сообщение отредактировал(а) dizzy1984 - 1.5.2007, 08:05
PM MAIL   Вверх
Voldemar2004
Дата 1.5.2007, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: нет
Всего: 23



Цитата(Prokazza @  1.5.2007,  00:59 Найти цитируемый пост)
покажите плз как переводить число в двоичную систему.
Так:
Код
#include <iostream.h>
#include <string.h>

string IntToBin(int Number);

int main()
{

int i;

cin >> i;

cin.get();

cout << IntToBin(i);

cin.get();

return 0;
}


string IntToBin(int Number) {

string buf;

    do
    {
        if (Number % 2 == 0) buf += '0';
        else buf += '1';

        Number /= 2;
    }
    while( Number > 0 );

    return strrev( (char*)buf.c_str() );

}



--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
ip127001
Дата 1.5.2007, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 24.11.2006
Где: Omsk

Репутация: -2
Всего: -1



вот дела когда-то...велосипед правда
Код

#include <stdlib.h>
#include<iostream.h>
#include<string>
#include <conio.h>
//---------------------------------------------------------------------------

int Stepen(int chislo=0,int stepen=0)
{
        int step=1, tmp=chislo;
                while (step<stepen)
                {
                        chislo=chislo*tmp;
                        step++;
                }
        return chislo;
}

int func(const char *chislo=0,int size=0)
{
        int *mas=new int[size];
        unsigned int result=0;
        int step=1,i=size-1;
                for (register int i=0;i<size;i++)  mas[i]=chislo[i]-'0';
                if (mas[i]==1){
                        result=1;
                        i-=1;
                        size--;
                }else{
                        result=0;
                        i-=1;
                        size--;
                }
                        while (size)
                        {

                                result=result+mas[i]*Stepen(2,step);
                                i--;
                                size--;
                                step++;
                        }
        delete[] mas;
        return result;
}

int main(int argc, char* argv[])
{
    unsigned int number = 0;
    char str[25];
    string bin_chislo;

        cout<<"Input number: ";
        cin>>bin_chislo;
                for (register string::size_type i=0;i<bin_chislo.size();i++)
                {
                        if ((bin_chislo[i]!='0') && (bin_chislo[i]!='1')){
                                cerr<<"Error : "
                                    <<"System of the numeration does not correspond!";
                                getch();
                                return -1;
                                }
                }
        number=func(bin_chislo.c_str(),bin_chislo.size());
        itoa(number, str, 16);

        cout<< "Dec = "<<number<<endl;
        cout<< "Hex = "<<str<<endl;

        getch();
        return 0;

}

упс пардон...тут наоборот...ну лан мож кому пригодиться 

Это сообщение отредактировал(а) ip127001 - 1.5.2007, 20:49
--------------------
aqua currit et debere currere ut currere solebat
PM MAIL   Вверх
FiMa1
Дата 2.5.2007, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 408
Регистрация: 23.9.2006

Репутация: 5
Всего: 6



Код

/***************************************************************
* ОПИСАНИЕ:                                                    *
*   переводит целые десятичные числа в СС с основанием 2 - 36  *
* ВХОД:                                                        *
*   num - число для перевода в другую систему счисления        *
*   radix - основание системы счисления                        *
*   str - строка, в которую помещается результат               *
* ВЫХОД:                                                       *
*   при успешном завершении возвращает 1, иначе - 0            *
****************************************************************/
int scale( int num, char *str, const int radix )
{
    int    priv = 0, i = 1;
    
    if( radix < 2 || radix > 36 || radix == 10 )
        return 0;
    
    while( 1 )
    {
        if( num >= radix )
        {
            priv = num / radix;//найти частное
            str[i++] = num - priv * radix;//найти остаток от деления
            num = priv;
        }
        else 
        {
            *str = priv;
            break;
        }
    }

    for( i -= 1; i >= 0; i-- )
        if( str[i] >= 10 )
            str[i] = (char)( str[i] - 10 + 'A' );
    
    return 1;
}


Это сообщение отредактировал(а) FiMa1 - 2.5.2007, 15:57
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0977 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.