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

дан массив char[22] как превратить отдельные байты в int, short - C++

Восстановить пароль Регистрация
 
presler
0 / 0 / 0
Регистрация: 16.12.2009
Сообщений: 3
14.10.2010, 11:58     дан массив char[22] как превратить отдельные байты в int, short #1
Дан массив char[22]. В нем содержатся на заранее определенных местах разные типы целых(int и short). Как их грамотно выделить в отдельные переменные? Например 1-2-3-4 = unsigned int; 5-6 = unsigned short; 7-8-9-10 = int; и т.д. Некоторые байты могут быть равны нулю.
Пытался сделать через std::stringstream, считывая потом побайтно из потока, но ничего не получилось, и еще приходил в голову неработающий костыль:
C++
1
2
3
4
5
6
7
8
    char a[6];
    a[0] = 0xee; a[1] = 0xff;
    a[2] = 0xfa; a[3] = 0xff; a[4] = 0xff; a[5] = 0xff;
    unsigned int z;
    unsigned short c;
    z = (a[2] * 256 * 256 * 256 +  a[3] * 256 * 256 +  a[4] * 256 +  a[5]);
    c = ( a[0] * 0x100 +  a[1]);
    std::cout << std::hex <<  c << ' ' << z;
На c-sharp знаю есть функции BinaryReader(MemoryStream).ReadInt16 и BinaryReader(MemoryStream).ReadInt32, вот что-нибудь бы такое.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2010, 11:58     дан массив char[22] как превратить отдельные байты в int, short
Посмотрите здесь:

C++ Напишите программу, которая будет определять размер для данных (int, char, long, double, short, unsigned, float) и выводить информацию
C++ размер для данных (int, char, long, double, short, unsigned, float)
C++ Как превести из char* в int и наоборот из int в char*?
C++ Как превратить число из char в int ?
C++ Как массив char[4] в int ?
Преобразование 2-х char в один short int C++
записать по-битого один short int в два char C++
C++ Как в выделенную память записать поочередно число int, массив char[n], и еще число int

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4837 / 3236 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
14.10.2010, 12:28     дан массив char[22] как превратить отдельные байты в int, short #2
memcpy()
Yandex
Объявления
14.10.2010, 12:28     дан массив char[22] как превратить отдельные байты в int, short
Ответ Создать тему
Опции темы

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