C/C++ - помощь в понимании и решении задачи

Ответить
Аватара пользователя
julia_melni4enko@vk

C/C++ - помощь в понимании и решении задачи

Сообщение julia_melni4enko@vk »

Существует массив данных

int f[] = { 0x01020304, 0x05060708 };

и переменная int r=0;

необходимо в r занести сумму 0203+0607 из этого массива, то есть сумму двух байтов. Решить задачу необходимо использую тип данных char или BYTE. а также цикл, чтобы иметь возможность увеличивать массив. Вот до чего я дошла. Загвоздка в работе с типом BYTE:

int _tmain(int argc, _TCHAR* argv[])

{

int f[] = { 0x01020304, 0x05060708 };

int r = 0;

for (int i=0;i
Аватара пользователя
User001

Re: C/C++ - помощь в понимании и решении задачи

Сообщение User001 »

Цитата julia_melni4enko@vk:



необходимо в r занести сумму 0203+0607 из этого массива, то есть сумму двух байтов. Решить задачу необходимо использую тип данных char или BYTE. а также цикл, чтобы иметь возможность увеличивать массив. Вот до чего я дошла. Загвоздка в работе с типом BYTE:
C/C++ - помощь в понимании и решении задачи




Столбиком побайтно посчитать что ли надо? Покажите что вы вообще хотите посчитать (без привязки к языку программирования).


Цитата julia_melni4enko@vk:



Загвоздка в работе с типом BYTE:
C/C++ - помощь в понимании и решении задачи




Где загвоздка? Я только кусок кода вижу. Загвоздки не вижу.


Цитата julia_melni4enko@vk:



char *p = *F;
C/C++ - помощь в понимании и решении задачи




Если вам нужно получить N-ый байт из int - используйте битовые сдвиги, например:



Пример

[spoiler]...

int a = 0x01020304;

unsigned int b = (a >> 8 * 1) & 0x000000FF; // 1-ый 03

b = (a >> 8 * 2) & 0x000000FF; // 2-ой 02

...[/spoiler]




Складывать столбиком, думаю, умеете.



Если вам нужно готовое решение задачи - ищите фрилансеров, одноклассников и т.д.
Ответить

Вернуться в «Программирование и базы данных»