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

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

Войти
Регистрация
Восстановить пароль
 
em_larionov
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 46
#1

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

25.03.2013, 20:00. Просмотров 341. Ответов 6
Метки нет (Все метки)

Здравствуйте, собственно как внедрить 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;
 
// Пробовал внедрять таким способам но число на выходе получаю не то что должно быть
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2013, 20:00     Внедрить hex в указатель int
Посмотрите здесь:

HEX string => int - C++
Доброе время суток. Возникла необходимость преобразовать шестнадцатиричную строку в int. Пробовал разные вариации с sprintf, но они не...

Long int записать в hex побайтно - C++
Всем доброго времени суток... есть long int число, состоящее из 4 байт, нужно их записать в массив char по 2 байта в ячейку, но эти...

Как из строки достать hex в int - C++
Есть строка, в которой хранится &quot;7D&quot;, как я могу преобразовать её в hex и записать в int? atoi не справляется(

Число int перевести в hex и хранить в char - C++
Есть число в десятичном формате, допустим int a. Необходимо его в Hex формате положить в char. Рассматриваются только те случаи когда...

Запись в файл значения int (hex,ascii) - C++
Задача: Записать в файл значение int == 0x52494646 (&quot;RIFF&quot; in ASCII form) #include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include...

Указатель массива int - C++
Программа должна выводить максимальное число из введенных, а выводит какое-то большое число вместо этого (это адрес элемента массива?), как...

Функция возвращающая указатель на int - C++
Не могу понять ошибки. // prata 7 pt to function.cpp : Defines the entry point for the console application. // #include &quot;stdafx.h&quot;...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nonedark2008
883 / 622 / 125
Регистрация: 28.07.2012
Сообщений: 1,662
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
883 / 622 / 125
Регистрация: 28.07.2012
Сообщений: 1,662
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
883 / 622 / 125
Регистрация: 28.07.2012
Сообщений: 1,662
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
Еще ссылки по теме:

переменная типа указатель на int передается по значению? - C++
Всем привет! Изучая С++ возник такой вопрос. Как сделать так чтобы передавая указатель на массив в функцию я мог менять не только...

Написать функцию, которая принимает указатель на небольшой 2х мерный массив int значениями - C++
Подскажите пожалуйста, надо написать функцию, которая принимает указатель на небольшой 2х мерный массив int значениями (5 на 2) и сортирует...

Как получить число типа int, если имеется указатель на строку с этим числом? - C++
допустим у меня есть строка &quot; 45&quot;; и указатель на нее string *str; как получить из нее число 45 в виде int?

Error С2664. Параметр 1 не может быть преобразован из 'int' в 'int [][10]' - C++
Добрый день! Компилятор &quot;ругается&quot; на описание функции. Как устранить данную проблему самому не знаю. Заранее благодарю за помощь! ...

Правильное объявление переменной с точки зрения стиля [int *a vs int* a] - C++
И всё таки, как корректней объявлять переменные? 1. int* a, int&amp; a, int** a или 2. int *a, int &amp;a, int **a ?


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

Или воспользуйтесь поиском по форуму:
vua72
415 / 415 / 85
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
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
Ответ Создать тему
Опции темы

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