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

Перевод hex в char - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дана "мишень" в виде закрашенной области. Создать алгоритм для определения попадания точки с координатами (х,у) в мишень http://www.cyberforum.ru/cpp-beginners/thread1082820.html
Здравствуйте, форумчане. Помогите немного пожалуйста, а то программа ошибку выдает, а я что то не вкуриваю в чем проблема то... Дана "мишень" в виде закрашенной области, изображенной на рисунке....
C++ Массив указателей Допустим имеем массив, размерностью 20. Если выделять память динамически следующим образом: WCHAR *name; *name = new WCHAR; то память выделяется для хранения под все 20 символов, или нет?... http://www.cyberforum.ru/cpp-beginners/thread1082818.html
Не понимаю в чем ошибка. Неправильно считает количество повторений C++
Вот код. Программа должна считывать 4 числа, и выводить кол-во повторений. Она выводит, но неправильно, когда 2 повторения выводит 6. #include <iostream> #include <conio.h> int main() { int...
C++ Удаление структуры из двусвязного списка
Доброго времени суток! Пытаюсь создать функцию удаления из списка структуры, не выполняется цикл while в функции del() в чем я не прав? struct spis { char name; char author; int...
C++ visual studio 2012 не позволяет смотреть результат программы http://www.cyberforum.ru/cpp-beginners/thread1082801.html
Доброго времени суток, может быть, я не правильно сформулировал свою проблему, но смысл в том что смотреть результат программы, можно лупившись в окошко http://rghost.ru/51965024
C++ Изменить "прогон" массивов Здравствуйте. Задание по сортировке. Преподаватель, сказал, что моя программа сортирует одинаковый массив. Нужно сделать так, чтобы программа сортировал 10000 разных массивов. Программа ниже.... подробнее

Показать сообщение отдельно
Тамика
Котовчанин
911 / 454 / 144
Регистрация: 16.02.2010
Сообщений: 3,113
Записей в блоге: 27

Перевод hex в char - C++

27.01.2014, 16:21. Просмотров 1858. Ответов 16
Метки (Все метки)

Добрый день! Снова с вопросом, дорогие форумчане.
Есть задание - получаю строку, в которой хексовое число. Например "е8". Нужно из нее сделать один байт хексовый е8.
Вот моя программа.
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
#include <iostream>
#include <vector>
 
char string_to_hex(const char& hex)
{
    char c = hex;
    if(( hex >= '0')&&(hex <= '9')){
        c = hex - '0';
        return c;}
    if(( hex >= 'A')&&(hex <= 'F')){
        c = hex - 'A' + 10;
        return c;}
    if(( hex >= 'a')&&(hex <= 'f')){
        c = hex - 'a' + 10;
        return c;}
}
 
std::vector <char> converter (const std::string& str)
{
    std::vector <char> result;
    result.reserve(str.size() / 2);
    for (int i = 0; i < str.size()/2; ++i)
        result.push_back(((string_to_hex(str[2*i])) << 4) | string_to_hex(str[2*i + 1]));
 
    return result;
}
 
int main()
{
    std::string str = "e8";
    std::vector<char> result = converter(str);
    for (int i = 0; i < result.size(); ++i)
        std::cout << static_cast<unsigned int>(result[i])<< std::endl;
 
    system("pause");
}
Функция string_to_hex возвращает всё верно. Но вот с пушем в вектор проблема... Я пока не сильно в этом разбираюсь, но по идее строка ((string_to_hex(str[2*i])) << 4) | string_to_hex(str[2*i + 1]) должна соединять два значения в одно. Но выводит какое-то левое огромное число! Помогите, пожалуйста! Буду очень благодарна.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru