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

Перевести в 16 ричную систему счисления - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Нужна срочная помощь в исправлении программы, пожалуйста!) http://www.cyberforum.ru/cpp-beginners/thread418092.html
С клавиатуры вводится значения х и y. В зависимости от значений х и y рассчитать значение функции f (x, y): f (x, y) = x, если y = 2; f (x, y) = x+y, если y = 3; f (x, y) = y, если y = 8; ещё одно условие f(x,y)=(1/(x+y))+2 если y=10 f (x, y) = 1 в противном случае #include <stdlib.h> #include <stdio.h>
C++ создание потока Привет! помогите организовать в основном потоке следующую задачу: Дана последовательность из n чисел.Найти сумму ее членов, расположенных между максимальным и минимальным значениями (в сумму включить и оба этих числа). вот сама задачка только без использования потоков int main(){ int n; float p1 = 1., p2 = 1., tmp; do{ cout << "Input n: "; cin >>... http://www.cyberforum.ru/cpp-beginners/thread418084.html
Палиндром C++
Нужна программа которая распознает палиндром строчка, слово или нет ! Help ! 12321 ; abcba ;абв гв ба ; И мал Иван, а лупил у лип улана вилами! - палиндром 12345 ; juyf ; ор опра и- не палиндром !
C++ односвязный и двухсвязный списки
как сделать из моей проги односвязный и двухсвязный списки?? #include <iostream> #include <time.h> #include <conio.h> #include <cstring> using namespace std;
C++ кто желает мне подсобить чуть чуть? http://www.cyberforum.ru/cpp-beginners/thread418048.html
нужно написать программу: 31 В одномерном массиве, состоящем из n вещественных элементов, вычислить: − номер минимального по модулю элемента массива; − сумму модулей элементов массива, расположенных после первого отрицательного элемента. Сжать массив, удалив из него все элементы, величина которых находится в интервале . Освободившиеся в конце массива элементы заполнить...
C++ Проблема с работой в Visual Studio, я новичок, подскажите) Помогите пожалуйста с Visual studio у меня такая проблема я пишу программу она выдает в моем коде такие то ошибки но не показывает где они именно я знаю что есть такая паннель в которой прописываются ошибки и поним можно щелкнуть мышкой и программа покажет в какой строке, я понимаю что мой вопрос не совсем корректный но помогите пожалуйста, так я их не когда не исправлю. Сейчас они прописанны... подробнее

Показать сообщение отдельно
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
27.12.2011, 17:14     Перевести в 16 ричную систему счисления
C++
1
#include <cstdlib>
В самое начало

Добавлено через 1 минуту
Такой
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#include <cstdlib>
#include <iostream>
#include <string>
#include <algorithm>
 
int symbol2int(char symbol)
{
    if((symbol >= '0') && (symbol <= '9'))
        return 0 + static_cast<int>(symbol) - static_cast<int>('0');
    else if((symbol >= 'A') && (symbol <= 'F'))
        return 10 + static_cast<int>(symbol) - static_cast<int>('A');
    else if((symbol >= 'a') && (symbol <= 'f'))
        return 10 + static_cast<int>(symbol) - static_cast<int>('a');
    else 
        return 0;
}
 
char int2symbol(int num)
{
    if(num < 10)
        return '0' + num;
    else
        return 'a' + num - 10;
}
 
char periodBin2hexSymbol(std::string period)
{
    int num = 0, count = 0;
    for(std::string::iterator it = period.end() - 1; count < 4; ++count, --it)
        num += (*it - '0') << count;
    return int2symbol(num);
}
    
std::string oct2bin(std::string oct)
{
    std::string bin;
    for(std::string::iterator it = oct.begin(); it != oct.end(); ++it)
    {
        std::string per;
        int num = symbol2int(*it);
        for(int count = 0; count < 3; ++count, num >>= 1)
            per = static_cast<char>((num & 1) + '0') + per;
        bin = bin + per;
    }
    size_t it = bin.find('1');
    if(static_cast<int>(it) != 0)
        bin.erase(0, it);
    return bin;
}
 
std::string& beginBinCorrection(std::string &bin, int period)
{
    while(bin.length() % period)
        bin = '0' + bin;
    return bin;
}
 
std::string& endBinCorrection(std::string &bin, int period)
{
    while(bin.length() % period)
        bin = bin + '0';
    return bin;
}
 
std::string bin2hex(std::string bin)
{
    beginBinCorrection(bin, 4);
    std::string hex;
    for(std::string::iterator it = bin.begin(); it != bin.end(); it += 4)
    {
        std::string period;
        period.insert(0, bin, (it - bin.begin()), 4);
        hex = hex + periodBin2hexSymbol(period);
    }
    return hex;
}
    
std::string oct2hex(std::string oct)
{
    size_t posPoint = oct.find('.');
    
    if(posPoint == std::string::npos)
        return bin2hex(oct2bin(oct));
        
    std::string beforePoint;
    std::string afterPoint;
    
    beforePoint.insert(0, oct, 0, posPoint);
    afterPoint.insert(0, oct, posPoint + 1, oct.size() - posPoint - 1);
    afterPoint = oct2bin(afterPoint);
    beginBinCorrection(afterPoint, 3);
    endBinCorrection(afterPoint, 4);
    afterPoint = bin2hex(afterPoint);
    
    return bin2hex(oct2bin(beforePoint)) + '.' + afterPoint;
}
 
int main()
{
    std::string oct;
    std::cin >> oct;
    std::cout << oct2hex(oct) << std::endl;
    system("pause");
 
    return 0;
}
останавливается?
 
Текущее время: 02:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru