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

Перевод числа из hex в dec - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Запрет запуска второй копии приложений http://www.cyberforum.ru/cpp-beginners/thread1778654.html
Нужно запретить запуск второй копии чужого приложения. Т.е. пользователь ткнул 5 раз на ярлык GTA5 в результате в процессе висит 2 GTA5, что не есть хорошо. Как этого можно избежать? Пока что идея такова. Мое приложение висит в памяти. Ярылк переделывается на что-то вроде "C:\myprogramm\app.exe" -name "GTA5" -launcher "C:\Games\GTA5\GTAVplay.exe" -path "C:\Games\GTA5\GTAV.exe" Параметры...
C++ Final для вложенной структуры class A{ class B {..} final; }; так класс B теперь входит в размер A, но не инициализируется. это баг? потому что я нигде не нашел про такое использование http://www.cyberforum.ru/cpp-beginners/thread1778648.html
C++ Stack. определение шаблона функции testStack. (хочу разобраться в коде)
Вот эта программа. Хочу разобраться в коде. #include <iostream> #include <string> #include <Stack> using namespace std; template <typename T> void testStack( Stack< T > &theStack,// показывает ошибку на Stack с требованием точки с запятой! поясните что и как.
C++ Ошибка компилятора C2784
Код: #include <iostream> #include <conio.h> using namespace std; int main(void) { cout >> "Hello, world" >> endl;
C++ Сложение чисел типа long long http://www.cyberforum.ru/cpp-beginners/thread1778607.html
Пыталась сложить 2 больших числа (в пределах long long), не получилось. В чем дело? #include <cmath> #include <cstdio> #include <vector> #include <iostream> #include <algorithm> using namespace std; int sum(int n, vector<long long> arr) {
C++ Передвижение коня по доске и сбор букв Добрый день! Не могу разобраться, в чём проблема =( Нужно решить задачу: есть шахматная доска. На ней, в каждой клетке, расположены буквы. По доске "ходит" конь (буквой "г", соответственно), и "собирает" фигуры. Нужно собрать таким образом 6 букв (первая "Э" уже задана). К сожалению, кроме всякой ерунды, ничего не выдаёт =( Буду рад помощи. #include <iostream> #include <conio.h> подробнее

Показать сообщение отдельно
Ferrari F1
Заблокирован
295 / 281 / 62
Регистрация: 27.01.2015
Сообщений: 1,889
Записей в блоге: 1
Завершенные тесты: 1
13.07.2016, 16:59  [ТС]     Перевод числа из hex в dec
Цитата Сообщение от zer0mail Посмотреть сообщение
нет ни строчки, написанной ТС.
код у меня есть, но недоделанный. Просто иногда бывают моменты когда просто не соображаешь, что надо писать, чтобы было в верном направлении...
А вместо этого получается какая-то лажа в виде багов.
Пишешь например, а потом выясняется, что числа типа F00001 неверно обрабатываются из-за наличия промежуточных нулей.
Или например первая (или любая внутренняя) цифра в числе не делится нацело на десять (она меньше 10), тогда нужно запоминать эту цифру и к след. разряду ее приписывать (1F01).
Слишком много случаев получается, и в голове их все, бывает, не можешь удержать. Как следствие - баги...

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
70
71
72
73
74
75
76
77
78
79
80
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
 
unsigned f_fromHex(const char& digit)
{
    switch (digit)
    {
    case 'A':
        return 10;
        break;
    case 'B':
        return 11;
        break;
    case 'C':
        return 12;
        break;
    case 'D':
        return 13;
        break;
    case 'E':
        return 14;
        break;
    case 'F':
        return 15;
        break;
    default:
        return digit - '0';
        break;
    }
}
 
unsigned f_convert(const string& str);
 
void f_strDevide(string& number, string& result)
{
    string forReturn;
    
    auto temp(0u);
    for (auto head(number.cbegin()), cur(head), end(number.cend() - 1);
        head != end; ++head)
    {
        temp = f_convert(string(cur, head + 1));
 
        if (temp / 10)
        {
            forReturn += to_string(temp / 10);
            cur = head;
            temp = 0;
        }
        else if (!forReturn.empty())
        {
            forReturn.push_back('0');
        }
    }
}
 
string f_toDec(string hex)
{
    string result;
 
    while (hex.size() > 1)
        f_strDevide(hex, result);
 
    auto digit(f_fromHex(*hex.begin()));
    result += to_string(digit % 10);
 
    if (digit /= 10)
        result += to_string(digit);
 
    reverse(hex.begin(), hex.end());
    return result;
}
 
int main()
{
    string number("1FFFF");
    system("pause");
}
 
Текущее время: 19:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru