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

вычислить int из char* - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ 6. Можно ли разменять m руб. на рублёвые, трёхрублёвые, пятирублёвые купюры так, чтобы получить всего 10 купюр. (10<m<50) http://www.cyberforum.ru/cpp-beginners/thread678430.html
Помогите пожалуйста сделать прогу: Можно ли разменять m руб. на рублёвые, трёхрублёвые, пятирублёвые купюры так, чтобы получить всего 10 купюр. (10<m<50)
C++ Некорректная работа программы при добавлении столбца в двумерный массив Проблемма в том что когда добавляю строку все прекрастно работает... А вот со столбцом -- работает но не корректно... Подскажите что не так... Программа должна добавить в любое место строку или столбец... #include <iostream> #include <time.h> #include <stdlib.h> using namespace std; void print(int **arr, int nrow, int ncol) { http://www.cyberforum.ru/cpp-beginners/thread678425.html
Привязка окна и объектов в ООП C++
Товарищи, помогите, пожалуйста! Как в С++ сделать привязку окна к объектам, что бы если мы делали окно меньше, то и объекты становились меньше).. Не обязательно код, хотя бы словами, как это можно реализовать,но если не трудно то можно и код)))
Последовательность чисел Series C++
Дано целое число K, а также K наборов ненулевых целых чисел. Ка- ждый набор содержит не менее трех элементов, признаком его завершения является число 0. Найти количество пилообразных наборов. Пилообразный, т.е если каждый его внутренний элемент либо больше, либо меньше обоих своих соседей (то есть является «зубцом»). вообще первый раз слышу что есть series. как с ним программу писать....
C++ Адрес до рабочего стола http://www.cyberforum.ru/cpp-beginners/thread678382.html
Когда прописываю адрес до файла C:\\Users\\%username%\\AppData\\Local\\File.txt то программа просто не видит его!!! Хотя тоже самое в бат файле работает отлично... Как мне в c++ прописать адрес???
C++ scanf и перевод каретки Конструкция вида scanf("%d\n", &uintgr); позволительна и перевод каретки уйдет. Однако scanf("%u\n", &uintgr); не уберет каретку, а сделает ещё хуже. Нужно будет ввести два числа. Второе останется в буфере. Откуда, как и почему? подробнее

Показать сообщение отдельно
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
24.10.2012, 06:27     вычислить int из char*
Цитата Сообщение от admsasha Посмотреть сообщение
Есть массив из char, в нем в 16 ричном виде записаны цифры, например a2, 01

Надо получить число в 10 виде. В данном случае будет 418 (01A2 (перевернуты)) Как это сделать ?
Надо получить именно строку в десятичной записи числа, или перевести из шестнадцатеричной в обычный int, то есть во внутреннее представление? Во втором случае тебе нужна одна из этих функций:
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
#include <math.h>
unsigned int HexToInt(char *hex)
{
 int result;
 char *c;
 char *n;
 for (c=hex, result=0; *c!=0; c=n)
 {
  if ((c>='0')&&(c<='9'))
  {
   result+=((int)c)-((int)'0');
  }
  if ((c>='a')&&(c<='f'))
  {
   result+=((int)c)-((int)'a')+10;
  }
  if ((c>='A')&&(c<='F'))
  {
   result+=((int)c)-((int)'A')+10;
  }
  n=c+1;
  if (*n!=0)
  {
   result*=10;
  }
 }
 return result;
}
char *IntToDec(unsigned int Dec)
{
 char *result;
 char *c;
 unsigned int n;
 if (Dec==0)
 {
  n=1;
 }
 else
 {
  n=(int)(ln((double)Dec)/ln(10.0))+1;
 }
 result=new char [n];
 c=result+n-1;
 if (result)
 {
  do
  {
   *c=Dec%10;
   --c;
  } while (Dec!=0)
 }
 return result;
}
, иначе обе.

Добавлено через 13 часов 22 минуты
Слегка переврал:
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
#include <math.h>
unsigned int HexToInt(char *hex)
{
 int result;
 char *c;
 char *n;
 for (c=hex, result=0; *c!=0; c=n)
 {
  if ((c>='0')&&(c<='9'))
  {
   result+=((int)c)-((int)'0');
  }
  if ((c>='a')&&(c<='f'))
  {
   result+=((int)c)-((int)'a')+10;
  }
  if ((c>='A')&&(c<='F'))
  {
   result+=((int)c)-((int)'A')+10;
  }
  n=c+1;
  if (*n!=0)
  {
   result*=16;
  }
 }
 return result;
}
char *IntToDec(unsigned int Dec)
{
 char *result;
 char *c;
 unsigned int n;
 if (Dec==0)
 {
  n=1;
 }
 else
 {
  n=(int)(ln((double)Dec)/ln(10.0))+1;
 }
 result=new char [n];
 c=result+n-1;
 if (result)
 {
  do
  {
   *c=(char)(Dec%10+((int)'0'));
   --c;
  } while (Dec!=0)
 }
 return result;
}
 
Текущее время: 20:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru