Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2013, 12:27   #1
calypso
Форумчанин
 
Регистрация: 02.12.2012
Сообщений: 250
По умолчанию Преобразование string в HEX-число в формате int64

Ничего более умного не придумал,чем такой код:
Код:
int baseadress=Convert::ToInt64("0x"+gcnew String(addrstr.c_str())
Здесь addrstr имеет тип std::string, в нем записан 8 разрядный адрес в шестнадцатиричном формате.Например, DEADC0DE
Мы добавляем 0х и преобразуем строку в число int, однако этот код выдает ошибку .Компилируется нормально,exception при работе уже
calypso вне форума Ответить с цитированием
Старый 11.04.2013, 12:48   #2
220Volt
Форумчанин
 
Регистрация: 14.12.2012
Сообщений: 668
По умолчанию

Сгодится ?
Код:
#include <string>
#include <iostream>

int main()
{
	string s = "0xb";
	long long int res = std::stoll(s, 0, 16);
	std::cout<<res;
	return 0;
}
http://www.cplusplus.com/reference/string/
220Volt вне форума Ответить с цитированием
Старый 11.04.2013, 12:54   #3
calypso
Форумчанин
 
Регистрация: 02.12.2012
Сообщений: 250
По умолчанию

Думаю да.Ещё нагуглил способы с sscanf,а также функции strtol и wcstol
А Convert::ToInt64 ругаеццо потому что думает что hex буквы это обычный текст.
calypso вне форума Ответить с цитированием
Старый 11.04.2013, 15:24   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

определитесь дотнет или не дотнет.
в дотнете есть метод System::Int64::Parse
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.04.2013, 15:27   #5
calypso
Форумчанин
 
Регистрация: 02.12.2012
Сообщений: 250
По умолчанию

Цитата:
string s = "0xb";
long long int res = std::stoll(s, 0, 16);
Работать то работает,только s конвертируется в десятичную СС. Мне надо чтобы так и осталось hex
Цитата:
определитесь дотнет или не дотнет.
Я не знаю,похоже дотнет.VS 2010 ,проект WinForms
calypso вне форума Ответить с цитированием
Старый 11.04.2013, 15:36   #6
calypso
Форумчанин
 
Регистрация: 02.12.2012
Сообщений: 250
По умолчанию

Цитата:
System::Int64::Parse
Работает только с числами.Как ему передаешь hex буквы,сразу ошибка вылазит
calypso вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
генератор псевдослучайных чисел с указанием диапазона в формате int64 Ежик Помощь студентам 5 03.04.2013 17:35
Как по указателю на массив узнать массив чего это(array of string/integer/int64...) WhiskasTM Общие вопросы Delphi 4 07.01.2013 21:11
String[3] => Hex => Dec Alex Cones Общие вопросы Delphi 5 21.03.2010 17:07
преобразование числа в hex fize Помощь студентам 20 27.11.2009 19:45
Число(word) -> HEX Kirill6666 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 02.06.2008 22:39