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

Внедрить hex в указатель int - C++

Восстановить пароль Регистрация
 
em_larionov
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 46
25.03.2013, 20:00     Внедрить hex в указатель int #1
Здравствуйте, собственно как внедрить hex в память, нужно нечто подобное:
C++
1
2
3
4
5
6
7
8
9
int *i = new int();
i[0] = 0xFF;
i[1] = 0xFF;
i[2] = 0xFF;
i[3] = 0xFF;
 
cout << *i;
 
// Пробовал внедрять таким способам но число на выходе получаю не то что должно быть
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nonedark2008
624 / 502 / 92
Регистрация: 28.07.2012
Сообщений: 1,340
25.03.2013, 20:01     Внедрить hex в указатель int #2
Цитата Сообщение от em_larionov Посмотреть сообщение
внедрить hex в память
Может будет достаточно: *i = 0xFFFFFFFF
em_larionov
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 46
25.03.2013, 20:05  [ТС]     Внедрить hex в указатель int #3
Цитата Сообщение от nonedark2008 Посмотреть сообщение
Может будет достаточно: *i = 0xFFFFFFFF
нет так не подходит, мне по байтно нужно
nonedark2008
624 / 502 / 92
Регистрация: 28.07.2012
Сообщений: 1,340
25.03.2013, 20:08     Внедрить hex в указатель int #4
Цитата Сообщение от em_larionov Посмотреть сообщение
мне по байтно нужно
1) В начале typedef unsigned char BYTE
((BYTE *)i)[0] = 0xFF;
((BYTE *)i)[1] = 0xFF;
((BYTE *)i)[2] = 0xFF;
((BYTE *)i)[3] = 0xFF;

Добавлено через 1 минуту
Хотя я не советую так делать. На разных компьютерах int может иметь разный размер. Так что не советую это запускать на 16-битных машинах.
em_larionov
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 46
25.03.2013, 20:17  [ТС]     Внедрить hex в указатель int #5
Цитата Сообщение от nonedark2008 Посмотреть сообщение
1) В начале typedef unsigned char BYTE
((BYTE *)i)[0] = 0xFF;
((BYTE *)i)[1] = 0xFF;
((BYTE *)i)[2] = 0xFF;
((BYTE *)i)[3] = 0xFF;

Добавлено через 1 минуту
Хотя я не советую так делать. На разных компьютерах int может иметь разный размер. Так что не советую это запускать на 16-битных машинах.
typedef я не добавлял и так все заработало, спасибо.


а таким способом можно по любому указателю внедрить hex ?
К примеру:
C++
1
2
void* m;// я знаю что по этому указателю есть 10 байт памяти, мне нужно изменить 5-тый байт 
((BYTE *)v)[4] = 0x2B;
Этот код будет нормально работать везде и с любыми указателями ?
nonedark2008
624 / 502 / 92
Регистрация: 28.07.2012
Сообщений: 1,340
25.03.2013, 21:57     Внедрить hex в указатель int #6
Цитата Сообщение от em_larionov Посмотреть сообщение
Этот код будет нормально работать везде и с любыми указателями ?
Да, будет работать корректно, если ты мимо памяти не настрочишь.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.03.2013, 01:08     Внедрить hex в указатель int
Еще ссылки по теме:

HEX string => int C++
C++ Long int записать в hex побайтно
C++ Указатель массива int

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

Или воспользуйтесь поиском по форуму:
vua72
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
26.03.2013, 01:08     Внедрить hex в указатель int #7
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
#include <iostream>
#include <iomanip>
 
using namespace std;
 
int main()
{
    /////////////// 1
    unsigned int i(0), mask(0);
    mask=0xdd00AA00;
    ios_base::fmtflags
            fmt=ios_base::right
            | ios_base::hex
            | ios_base::uppercase;
    cout.flags(fmt);
    cout <<"0x"<<setfill('0')<<setw(sizeof(i)*2)<< i << endl;
    i|=mask;
    cout <<"0x"<<setfill('0')<<setw(sizeof(i)*2)<<i<< endl;
    /////////////// 2
    unsigned char *a=new unsigned char [10]();
    unsigned char value=0x7A;
    a[5]=value;
    *(a+7)=value & 0x23;
    a[2]=value ^ 0x99;
    for (unsigned int i=0; i<10; ++i)
        cout <<(static_cast<int>(a[i]));
    cout <<endl;
    delete[]a;
    cout.flags(fmt^fmt);
    return 0;
}
Yandex
Объявления
26.03.2013, 01:08     Внедрить hex в указатель int
Ответ Создать тему
Опции темы

Текущее время: 12:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru