Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Colt_11
11 / 11 / 11
Регистрация: 18.01.2016
Сообщений: 97
1

Преобразование массива uchar в int

23.02.2017, 19:47. Просмотров 353. Ответов 5
Метки нет (Все метки)

Всем привет!
Может кто нибудь подсказать как менее громоздко преобразовать массив unsigned char в unsigned int?
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
    unsigned char a[4];
    unsigned int b;
 
    unsigned char buff;
 
    buff = a[0];
    a[0] = a[3];
    a[3] = buff;
    buff = a[1];
    a[1] = a[2];
    a[2] = buff;
 
    b = *((unsigned int)a);
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.02.2017, 19:47
Ответы с готовыми решениями:

Преобразование двоичного массива int в символ
Здравствуйте. У меня вопрос. Как преобразовать числовой массив, в котором, к примеру, 8 элементов,...

написать, прогу которая подсчитывает макс. и мин. значения переменных (int, shorting, longint, uint, char, uchar), ещё указать размер в байтах
Написать желательно простейшим языком(без применения каких-то очень навороченных функций)....

написать прогу, которая подсчитывает макс. и мин. значения переменных (int, shorting, longint, uint, char, uchar), ещё указать размер в байтах
помогите плиз. желательно, чтобы программа была написана максимально простым способом

Написать прогу, которая подсчитывает макс. и мин. значения переменных (int, shorting, longint, uint, char, uchar), ещё указать размер в байтах
Программа должна содержать функцию printf. Без функции std::count и т.п.

Преобразование типов double в int для задания размерности массива
Объясните, пожалуйста. Не объявляется массив, хотя его размеры объявил как константы. // #ifndef...

5
nd2
2968 / 2506 / 1089
Регистрация: 29.01.2016
Сообщений: 8,355
23.02.2017, 19:55 2
Цитата Сообщение от Colt_11 Посмотреть сообщение
C++
1
b = *((unsigned int)a);
Так не скомпилируется.
C++
1
b = *((unsigned int*)a);
А так, чем не устраивает?
C++
1
b = a[0]; // или b = *a;
0
Peoples
1374 / 858 / 755
Регистрация: 06.02.2016
Сообщений: 2,273
Записей в блоге: 18
Завершенные тесты: 5
23.02.2017, 19:57 3
C++
1
2
3
4
5
    unsigned char a[4]={'a','b','c','d'};
    unsigned int b[4];
    for(int i=0;i!=4;i++){
        b[i]=static_cast<unsigned int>(a[i]);
    }
0
Colt_11
11 / 11 / 11
Регистрация: 18.01.2016
Сообщений: 97
23.02.2017, 20:03  [ТС] 4
Мне надо преобразовать массив из четырех байт в int, в int байты лежать в перевернутом порядке, вопрос в том как этот переворот еще можно сделать.
0
liv
1146 / 933 / 196
Регистрация: 07.10.2015
Сообщений: 3,026
Завершенные тесты: 1
23.02.2017, 20:16 5
Colt_11, как вариант:
C++
1
    b = ((unsigned int)a[0]<<24)|((unsigned int)a[1]<<16)|((unsigned int)a[2]<<8)|(unsigned int)a[3];
Добавлено через 1 минуту
Или воспользоваться функцией htonl
1
Selot
189 / 125 / 52
Регистрация: 19.01.2010
Сообщений: 510
Завершенные тесты: 2
23.02.2017, 20:50 6
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>
 
template<class T>
class bytes_to_val
{
    union
    {
        char bytes[sizeof(T)];
        T    value;
    } converter;
 
public:
    T to_val(const char* ch, int size)
    {
        for(int i = 0; i < size; ++i)
            converter.bytes[i] = ch[size - i - 1];
        
        return converter.value;
    }
       
};
 
 
int main()
{
    char b[] = { 0x00, 0x01, 0x02, 0x03 };
 
    bytes_to_val<int> conv;
           
    std::cout << conv.to_val(b, sizeof(b));
}
http://rextester.com/WLFZW30977
0
23.02.2017, 20:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.02.2017, 20:50

Не выходит преобразование матрицы типа int в char и вывод строк массива
Если указываю массив например 5 на 5, то то всё отлично преобразует, но в последнем цикле нужно...

Как происходит преобразование int<<float<int
Как происходит преобразование int&lt;&lt;float&lt;int int n=222222222; float f=(float)n; n=(int)f;...

Преобразовать int в const int для установки размера массива
Добрый вечер всем! Столкнулся с такой нестандартной проблемой. Нужно преобразовать значения типа...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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