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

Системы счисления!!!! - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ только начил учить http://www.cyberforum.ru/cpp-beginners/thread97506.html
Даны действительные числа. Если они образуют нисходящую последовательность, то заменить их значения модулями, если растущую, то все оставить без изменений, в других случаях - увеличить все числа в 10 раз. спасибо)
C++ Точки на плоскости Заданы две точки на плоскости. Определить лежат ли они одновременно на осях координат. http://www.cyberforum.ru/cpp-beginners/thread97496.html
Сила притяжения между телами C++
Определить силу притяжения F между телами массами m1 и m2, находящиеся на расстоянии r друг от друга.
вопрос по ostream::write(). C++
ostream& ostream::write ( const char* s , streamsize n ); почему эта функция получает первым аргументом указатель на чар? в смысле не почему, а замем так сделали? тогда как обычная сишная: #include <stdio.h> size_t fwrite(const void *buf, size_t size, size_t count, FILE *stream); принимает указатель на воид. в чём тут логика? и верно ли так сохранять, например, лонг: fstream fout;
C++ прграммирование в С++ http://www.cyberforum.ru/cpp-beginners/thread97484.html
Всем доброго времени суток. Помогите пожалуйста в решении КР, катастрофически не хватает времени, кое-что знаю, но этого не достаточно для решения следующих задач на языке С++: 1. .тема: строки - условие: найти порядковый номер слова минимальной длины. 2. .тема: структуры - условие: В радиоателье хранятся квитанции о сданной в ремонт радиоаппаратуре. Каждая квитанция содержит наименование...
C++ как хранить поток? задача такая: класс имеет конструктор, этому конструктору при создании объекта класса передаёться поток ostream , соответственно объект класса должен как-то хранить информацию о потоке. как это реализовать? ничего из этого не подходит: ostream o; ostream &o; ostream *o; подробнее

Показать сообщение отдельно
insideone
Модератор
Автор FAQ
3635 / 913 / 48
Регистрация: 10.01.2010
Сообщений: 2,460
20.02.2010, 18:35     Системы счисления!!!!
(С)википедия
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
#include <string>
#include <iostream>
 
using namespace std;
 
char ntoa(int n) // преобразование номера цифры в символ 
{
    if ((n >= 0) && (n <= 9))
        return '0' + n;
    else
        return 'A' - 10 + n;
 
}
 
int aton(char a) // преобразование символа в номер цифры
{
    if ((a >= '0') && (a <= '9'))
        return a - '0';
    else if ((a >= 'a') && (a <= 'z'))
        return a - 'a' + 10;
    else
        return a - 'A' + 10;
}
 
// Преобразование из одной системы счисления в другую 
// s - число в системе счисления по основанию fs
// функция возвращает число в системе счисления fd
string conv(string s, int fs, int fd)
{
    int A = 0;
    for (unsigned int i = 0; i < s.length(); i++)
    {
        char a;
        a = aton(s[i]);
        if ((a >= 0) && (a <= fs))
            A = A * fs + a;
        else
            return "number has uncorrect format";
        // число в неверном формате
    }
    string sd = "";
    while (A != 0)
    {
        sd = ntoa(A % fd) + sd;
        A /= fd;
    }
    return sd;
}
int main(int argc, char* argv[])
{
    while (true)
    {
        string s;
        int fs, fd;
        cout << "Enter number, base and convert base: ";
        // Введите число, основание и основание конвертирования
        cin >> s >> fs >> fd;
        cout << conv(s, fs, fd) << endl;
    }
 
    return 0;
}

1 - как сделать число , больше типа long (где то 20 розрядов)
Хм... интересно double подойдет?
2 - как переобразовать число в строку
Функция itoa?
 
Текущее время: 08:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru