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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.87
prank2007
0 / 0 / 0
Регистрация: 01.07.2012
Сообщений: 64
#1

Надо перевести переменную типа unsigned char* в signed int и обратно - C++

04.10.2012, 12:12. Просмотров 2187. Ответов 4
Метки нет (Все метки)

у меня есть переменная типа unsigned char*, мне нужно перевести ее в signed int , провести арифметические вычисления и затем перевести ее обратно в unsigned char*;

делаю примерно так:
C++
1
2
3
4
5
6
unsigned char* r1= ....; //значение r1
signed  int Ir1 = atoi(r1);// перевожу в тип int
/* 
проводим вычисления 
 
*/
как быть дальше?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2012, 12:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Надо перевести переменную типа unsigned char* в signed int и обратно (C++):

Поместить двоичный код, в веденной строке, в переменную типа int и unsigned int. - C++
Пользователь вводит двоичную строку (32 символа). Поместить двоичный код, в веденной строке, в переменную типа int и unsigned int.

Как массив char[4] перевести в unsigned int? - C++
Есть массив из 4х char символов (4-е байта), нужно его перевести в unsigned int. Я сделал втупую: unsigned int B=0; ...

Значения типов данных (signed, unsigned, char) - C++
Програмирую я месяца два,но не понимаю значения типов данных : signed, unsigned, char...Помогите..

Тип char.Signed/unsigned.Отличие типов данных. - C++
Вопрос немного может быть не туда... Прошу прощения. Пишу прошивку к контроллеру, на С. Интересует отличие типов данных. ДОпустим есть тип...

Есть переменная типа char содержащая цифру; как записать это значение в переменную типа int? - C++
Пожалуйста, напомните стандартную функцию

Перевести строку типа char в массив типа int - C++
Задание : В текстовом файле INPUT.TXT записаны целые числа через пробел, возможно, в несколько строк. За один просмотр файла сформировать...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Andsteadur
153 / 137 / 3
Регистрация: 23.05.2009
Сообщений: 275
04.10.2012, 12:31 #2
Если в строке хранятся байты int, то можно так:
C++
1
2
3
4
5
unsigned char r1[] = {1, 0, 0, 0}; 
int Ir1 = 0;
memcpy(&Ir1, r1, sizeof(int)); // Ir1 = 1;
++Ir1; //Ir1 = 2;
memcpy(r1, &Ir1, sizeof(int)); // r1 = {2, 0, 0, 0}
Если же в строке хранится строковое представление числа типа "1234", то для atoi есть обратная функция itoa
SatanaXIII
Супер-модератор
Эксперт С++
5610 / 2644 / 245
Регистрация: 01.11.2011
Сообщений: 6,506
Завершенные тесты: 1
04.10.2012, 12:31 #3
itoa


Не по теме:

Цитата Сообщение от prank2007 Посмотреть сообщение
как быть дальше?
Все задают себе такой вопрос.



По хорошему надо еще проверочек насовать. Типа если вдруг там символ, а мы его в int запихиваем.
igorrr37
1646 / 1274 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
04.10.2012, 12:34 #4
http://www.cplusplus.com/reference/c...stdio/sprintf/
KATbIK
86 / 81 / 10
Регистрация: 02.08.2011
Сообщений: 335
04.10.2012, 12:38 #5
если байты в unsigned char* r1, то *(int*)(& r1[0])
Конечно кол-во байт не меньше 4-х, если int 4 байта.
обратно в байты примерно так
C++
1
2
3
unsigned char* s = (unsigned char*)&Ir1;
for (size_t i = 0; i < sizeof(int); ++i)
      r1[i] = *s++;
проверь на всякий случай.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.10.2012, 12:38
Привет! Вот еще темы с ответами:

Сделать преобразование unsigned char в char, а затем типу int - C++
Здраствуйте, есть вопрос: Число представлено двумя полями: типа long для рублей и unsigned char - для копеек. Собственно что мне...

Vector<unsigned char> в int - C++
есть vector&lt;unsigned char&gt; размером 4 байта..и мне надо перевести их в 1 число типа int. т.е. типо int command = tempN.data(); но ...

Преобразовать строку String в массив #define byte_t unsigned char и обратно - C++
Собственно танцы с бубном долгое время. Подскажите пожалуйста, как правильно и оптимально это делать. Каждый символ строки при...

Аргумент типа "unsigned char*" несовместим с параметром типа "const char*" - C++
int f(unsigned char s, unsigned char q) { N = strlen(s); //Ошибка тут... M = strlen(q); //...и тут Как исправить?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
04.10.2012, 12:38
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru