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

Шестнадцатеричные числа в массиве unsigned char - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа с графикой в (Win32) http://www.cyberforum.ru/cpp-beginners/thread196587.html
Помогите нарисовать домик)
C++ Математические функции math.h Не работают стандартные функции библиотеки <math.h> Ну, например: #include <cmath> #include <iostream> using namespace std; int main() { double x,y; cin >> x >> y ; http://www.cyberforum.ru/cpp-beginners/thread196566.html
Найти максимальное число, встречающееся в заданном массиве только два раза C++
Найти максимальное число, встречающееся в заданном массиве только два раза. Заранее спасибо!!
RSA Шифрование.Найдите ошибку пожалуйста C++
уважаемые Гуру программисты найдите в этом коде ошибку заранее спасибо!!! #include <iostream> #include <string> using namespace std; int Pros(int a) { for (int i=2;i<=sqrt(a);i++) if (a%i==0) {cout<<"No\n";return -1;} cout<<"Yes\n";return a;
C++ Создание и вызов формы из консоли http://www.cyberforum.ru/cpp-beginners/thread196545.html
Здравствуйте! Задача такая - имеется консольное приложение, в процессе работы генерирующее псевдослучайную величину, по значениям которой надо построить гистограмму в форме. Собственно вопрос - а как из консольного приложения создать и отобразить форму? Обязательные требования: vs2008, все расчеты должны остаться в консольной части.
C++ материалы предназначеные для самостоятельного изучения языка с++ Внимание: данные материалы предназначены для самостоятельного изучения языка с++ используя Microsoft Visual Studio 2008 и не только,,, В файлах где находятся задачи применять error_printf не надо только printf или cin Лекция №1. Cтруктура программы Лекция №2. Операции и выражения Задачи к теме Лекция №3. МассивыЗадачи к массивам..Памятка к массивам Лекция №4. Функции Лекция №5.... подробнее

Показать сообщение отдельно
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
24.11.2010, 14:52     Шестнадцатеричные числа в массиве unsigned char
G1m3rr, если такое условие, то можно создавать временные массивы и с ними работать. То есть на псевдокоде это будет выглядеть так:
Код
void addition(char *a, char *b, char *result)
{
     // Предполагается что a, b, result содержат именно символы 

     // Создаются новые массивы, которые будут хранить уже преобразованные исходные
     // Работа будет именно с числами, можно воспользоваться динамическим выделением памяти, если есть смысл
     char tmp_a[MAXLEN];     
     char tmp_b[MAXLEN];
     char tmp_res[MAXLEN];

     // Преобразуете числа
     to_num(a, tmp_a);
     to_num(b, tmp_b);

     // Выполняете сложение
     ....

     // Выполняете обратное преобразование
     to_symbols(tmp_res, result);
}
Как более простой вариант, но неверный по своему подходу.
Делаете функцию которая возвращает правильную цифру по символу и работаете с ней. И функцию обратную.
То есть пишете не так:
Цитата Сообщение от G1m3rr Посмотреть сообщение
if(((C[i-1]-'0')+(mas[i-1]-'0')+(B[j]-'0'))>15)
{
C[i-2]='1';
C[i-1]=((C[i-1]-'0')+(mas[i-1]-'0')+(B[j]-'0')-16+'0');
j--;
}
а примерно следующим образом:

C
1
2
3
4
5
6
7
8
char carry = to_num(C[i-1]) + to_num(C[i-1]) + to_num(B[j]);
if(carry > 15)
{
     C[i-2] = to_sym(1);
     C[i-1] = to_sym(carry - 16);
 
     j--;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru