HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > Общие вопросы программирования
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 15.05.2022, 22:31
ччбчлчлчъ ччччшчьпьппзвжв
Постоянный
Регистрация: 16.08.2020
Сообщений: 553
С нами: 3022568

Репутация: 68


По умолчанию

Как придать инту формат hex, т.е. есть 5500 число и нужно сделать чтобы оно имело вид 0x5500

 
Ответить с цитированием

  #2  
Старый 15.05.2022, 22:48
sc6ut
Постоянный
Регистрация: 03.05.2020
Сообщений: 385
С нами: 3174020

Репутация: 213
По умолчанию

тебе его вывести надо или что? просто непонятно что ты хочешь. что значит "придать вид"?

если преобразовать его в строку формата 0x... то можно так:

на си

C:





Код:
#include 
// ...
int
num
=
0x5500
;
char
buf
[
100
]
=
{
0
}
;
sprintf
(
buf
,
"0x%X"
,
num
)
;


на сиплюсплюс

C++:





[CODE]
#include
// ...
int
num
=
0x5500
;
std
::
ostringstream oss
;
oss

 
Ответить с цитированием

  #3  
Старый 15.05.2022, 22:57
ччбчлчлчъ ччччшчьпьппзвжв
Постоянный
Регистрация: 16.08.2020
Сообщений: 553
С нами: 3022568

Репутация: 68


По умолчанию

[QUOTE="sc6ut"]

тебе его вывести надо или что? просто непонятно что ты хочешь. что значит "придать вид"?
если преобразовать его в строку формата 0x... то можно так:
на си

C++:





Код:
#include 
// ...
int
num
=
0x5500
;
char
buf
[
100
]
=
{
0
}
;
sprintf
(
buf
,
"0x%X"
,
num
)
;


на сиплюсплюс

C++:





[CODE]
#include
// ...
int
num
=
0x5500
;
std
::
ostringstream oss
;
oss


5500, затем это значение нужно сюда, чтобы такой вид имело

, либо же мне можно 5500 представить в виде хекс и перевести его, но это у меня не получается на этапе составления строки =((


Весь проект

C++:





Код:
#include 
#include 
#include 
BOOL APIENTRY
DllMain
(
HMODULE hModule
,
DWORD dwReasonForCall
,
LPVOID
)
{
HANDLE process
=
GetCurrentProcess
(
)
;
DWORD_PTR processAffinityMask
;
DWORD_PTR systemAffinityMask
;
if
(
!
GetProcessAffinityMask
(
process
,
&
processAffinityMask
,
&
systemAffinityMask
)
)
return
-
1
;
if
(
dwReasonForCall
==
DLL_PROCESS_ATTACH
)
{
char
name
[
256
]
;
GetModuleFileNameA
(
hModule
,
name
,
256
)
;
std
::
regex
re
(
R"(.*\\.*-(\d+).+)"
,
std
::
regex
::
icase
)
;
std
::
cmatch m
;
std
::
regex_match
(
name
,
m
,
re
)
;
std
::
string s
=
"0x"
+
stoi
(
m
[
1
]
)
;
SetProcessAffinityMask
(
process
,
std
::
stoul
(
s
,
nullptr
,
16
)
)
;
}
else
if
(
dwReasonForCall
==
DLL_PROCESS_DETACH
)
{
SetProcessAffinityMask
(
process
,
systemAffinityMask
)
;
}
return
TRUE
;
}
 
Ответить с цитированием

  #4  
Старый 15.05.2022, 23:18
sc6ut
Постоянный
Регистрация: 03.05.2020
Сообщений: 385
С нами: 3174020

Репутация: 213
По умолчанию

C++:





Код:
#include 
// ...
std
::
string s_num
=
"5500"
;
int
num
=
std
::
stoi
(
s_num
,
nullptr
,
16
)
;
// num = 0x5500
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.