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

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

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

Показать сообщение отдельно
Тамика
Котовчанин
 Аватар для Тамика
860 / 440 / 129
Регистрация: 16.02.2010
Сообщений: 2,543
Записей в блоге: 27
27.01.2014, 16:21     Перевод hex в char
Добрый день! Снова с вопросом, дорогие форумчане.
Есть задание - получаю строку, в которой хексовое число. Например "е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]) должна соединять два значения в одно. Но выводит какое-то левое огромное число! Помогите, пожалуйста! Буду очень благодарна.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru