Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 20.05.2013, 20:42   #1
Lawikun
Новичок
 
Регистрация: 20.05.2013
Сообщений: 2
Репутация: 10
Печаль Не верный си код не знаю что делать

Код:
#include <iostream>
#include <string>

std::string FloatToBin(const double x)
{
std::string ret;
unsigned int z = x;
double r = x-z;

// òóò ïåðåâîäèòñÿ öåëàÿ ÷àñòü
while (z!=0)
{
ret=(char)(z%2+0x30)+ret; 
z=z/2;
}

int counter=0;
//òóò äðîáíàÿ
if (r!=0) ret+=".";
while (r!=0)
{
z=r*2;
ret+=(char)(z+0x30);
r=r*2-z;
++counter;
if (counter==10) // òóò ïîíèìàåì, ïðîöåññ çàòÿíóëñÿ è ÷èñëî ìîæåò áûòü âîîáùå èððàöèîíàëüíî, ïîñòàâèì òî÷êè
{
ret+="...";
break;
}
}
return ret;
}

int main()
{
std::string s;
s = FloatToBin(123.625);
std::cout « s « std::endl;
return 0; }

Тут 3 ошибки не могу понять что делать нужно((((

Последний раз редактировалось Stilet; 21.05.2013 в 22:58.
Lawikun вне форума   Ответить с цитированием
Старый 20.05.2013, 21:28   #2
BDA
Модератор
Заслуженный модератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Адрес: RF Moscow
Сообщений: 5,408
Репутация: 2502

icq: 438888048
По умолчанию

Во-первых, не си, а с++.
Во-вторых, а мы как должны их найти, да еще и с такими комментариями "òóò ïîíèìàåì, ïðîöåññ çàòÿíóëñÿ è ÷èñëî ìîæåò áûòü âîîáùå èððàöèîíàëüíî, ïîñòàâèì òî÷êè"?
__________________
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума   Ответить с цитированием
Старый 21.05.2013, 17:12   #3
Nedward
Форумчанин
 
Регистрация: 26.06.2011
Адрес: Пермь
Сообщений: 85
Репутация: 33

icq: 590352344
По умолчанию

А у меня запустилось, правда после небольшой модернизации. Вот только у меня есть сомнения по поводу правильности расчета дробной части числа, но проверять лень. Вот корректный C++ код.
Код:
#include <iostream>
#include <string>

std::string FloatToBin(const double x)
{
    std::string ret;
    unsigned int z = x; //целая часть
    double r = x-z;     //дробная часть

    while (z!=0)
    {
        ret=(char)(z%2+0x30)+ret;
        z=z/2;
    }

    int counter=0;
    if (r!=0) ret+=".";
    while (r!=0)
    {
        z=r*2;
        ret+=(char)(z+0x30);
        r=r*2-z;
        ++counter;
        if (counter==10)
        {
            ret+="...";
            break;
        }
    }
    return ret;
}

int main()
{
    std::string s;
    s = FloatToBin(2.2);
    std::cout << s << std::endl;
    return 0;
}
__________________
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. (c) Martin Golding
Nedward вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не знаю что делать! mikolka821 JavaScript, Ajax 2 01.10.2011 22:41
ошибка (не знаю что делать)... retype Помощь студентам 1 16.05.2010 21:26
Не знаю что делать дальше)))) LiptonICE Помощь студентам 1 15.05.2010 13:36
Посмотрите на прогу я не знаю что уже делать(((( Krumyura Общие вопросы C/C++ 1 18.03.2010 23:37


08:58.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.