Форум программистов, компьютерный форум, киберфорум
Наши страницы

Перевод из одной системы счисления в другую - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти площадь треугольника, заданного координатами вершин http://www.cyberforum.ru/cpp-beginners/thread350132.html
Даны целые числа (x1,x2,x3,y1,y2,y3),,,найдите Площадь Треугольника (x1,x2,x3,y1,y2,y3) Я просто в первый раз работаю в Microsoft Visual Studio Не могу сделать а в Понедельник мне надо стать его...
C++ компиляция больших проектов в Visual C++ 6.0 Допустим есть проект, состоящий из множества файлов исходного кода, заголовочных файлов,ресурсов, картинок и прочее. Все они размещаются по разными папкам, причем папки могут быть вложенными,... http://www.cyberforum.ru/cpp-beginners/thread350131.html
проверка треугольника C++
Всем привет! Народ, а как правильно проверить существует ли треугольник, у меня в этом ошибка #include<iostream.h> #include<conio.h> class Triangle { private: float seta,setc; public:
Бинарное считывание с файла и бинарный вывод. C++
Пишу в Visual Studio 2008, давно не писал C++, поєтому возникли следующие вопросы по iostream, fstream #include <iostream> #include <fstream> void printFile( char* fname) { std::fstream file;...
C++ Неявное преобразование типов http://www.cyberforum.ru/cpp-beginners/thread350120.html
если я правильно понял, то explicit работает таким образом: class abc { int x; public: abc(int x_):x(x_){} ~abc(){} };
C++ class образец Существует class Car в проекте из 3 файлов(Function.cpp|main.cpp|Headers.h) В Function.cpp лежат функции типа char *Car::Get_Marka(){ return marka; } В main.cpp только вызовы функций В Headers.h... подробнее

Показать сообщение отдельно
softmob
1248 / 698 / 155
Регистрация: 20.02.2010
Сообщений: 1,035

Перевод из одной системы счисления в другую - C++

11.09.2011, 17:04. Просмотров 4748. Ответов 11
Метки (Все метки)

перевод чисел(в том числе с дробной частью) из сс q в сс p.(q, p от 2 до 16)
помогите протестить:
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <iostream>
#include <ostream>
#include <string>
#include <algorithm>
#include <locale>
#include <math.h>
#include <sstream>
 
using namespace std;
 
template <typename T>
T input(string const & message, T const & def)
{
    T var(def);
    cout << message << ": ";
    cin >> var;
    return var;
}
 
void main()
{
    locale defloc;
    string u("0123456789ABCDEF"); 
    string a = input("vvedite chislo", string());
    string c,w,s_d,di;
    int q = input("vvedite q", 0);
    int p = input("vvedite p", 0);      
    unsigned long long int z=0; 
    if (a.find(',')!=-1) a[a.find(',')]='.';
    int k=a.find('.'), r = (a.size() - k-1),l=0;
        if (k==-1) 
            r=0;
        else
            {r*=-1;
            a=a.erase(k, 1);
            }
    long double d=0, f=pow((double)q,r);
        
        for (int len=a.size()-1; len>=0;len-=1)
        {
            if (r>=0)
            z += f*u.find(toupper(a[len], defloc));
            else
            d += f*u.find(toupper(a[len], defloc));
            f*=q;
            r+=1; 
        }   
           
        for (; z > 0; z /= p) c += u[z % p];
           
        do 
        {
        l+=1;
        if ( l>20 ) break;
        d*=p;           
        ostringstream ost;
        ost << d;
        s_d = ost.str();
    di=s_d.substr(0,s_d.find('.'));
    s_d='0'+s_d.erase(0, s_d.find('.'));
        w+=u[stod(di)];
        d=stod(s_d);
        }
        while((d>0)); 
                   
    reverse(c.begin(), c.end()); 
    cout << string(80, '\xc4') <<  c << '.'<<w<< endl;
    system("pause");
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru