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

Считать массив байт в переменную типа int в обратном порядке - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Русский язык в консоли http://www.cyberforum.ru/cpp-beginners/thread1245422.html
Здравствуйте. Чего-то не разберусь с русским языком. setlocale(LC_ALL,"RUSSIAN"); и setlocale(LC_ALL,"1251"); - классно. Мне нужно вводить выводить с клавиатуры, а так же из текстового файла. Одна из выше строк помогает при работе с файлом, вторая - для клавиатуры. Т.е. один вариант помогает ввести с клавиатуры русский текст, но в то же время при выводе из файла странный набор символов,...
C++ Дайте ссылку на Dshow Помогите! Киньте мне силку на dshow.a, никак не могу найти http://www.cyberforum.ru/cpp-beginners/thread1245396.html
Необходимо хранить список типов, и пользоваться ими, например, вызывать конструкторы C++
Здравствуйте! Мне необходимо хранить список типов, и пользоваться ими, например, вызывать конструкторы. Я нашел вариант решения проблемы в известной книге А. Александреску, но книга писалась давно, и вопрос: есть ли какие-либо варианты сделать тоже самое с помощью средств c++11, скажем, вариадических шаблонов (я не могу запихнуть в них то, что мне нужно, но они могут оказаться полезны...
Неправильная длина строки при передаче в функцию C++
странная работа компилятора(строки) в кратце проблема выглядет так определяем переменную типа широкой строки считаем ее длину передаем указатель строки в функцию и в ней уже длина строки считается неправильно!
C++ Парсер текста: прочитать файл и поместить данные в массив http://www.cyberforum.ru/cpp-beginners/thread1245364.html
Есть файл map.txt А там в строчку написаны циферки с пробелами 0 0 1 1 1 0 0 0 1 1 1 1 1 0 0 0 1 1 1 0 0 0 0 12 12 12 0 0 Как прочитать данную cut прочитать и запихнуть в массив? И еще, есть у кого рабочий парсер json
C++ Используя класс list, в котором храняться фамилии студентов группы, организовать поиск по фамилии Дали задание: используя класс list, в котором храняться фамилии студентов группы, организовать поиск по фамилии. Не могу создать list с уже заданным содержимым. подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
 Аватар для Mr.X
2796 / 1572 / 246
Регистрация: 03.05.2010
Сообщений: 3,647
24.08.2014, 00:27     Считать массив байт в переменную типа int в обратном порядке
Цитата Сообщение от John Prick Посмотреть сообщение
На разных архитектурах порядок байт может быть разным, и тогда "фишка" не сработает.
Верное замечание. Тогда так можно:
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
32
33
34
35
36
/////////////////////////////////////////////////////////////////////////////////////////
//Есть массив байт:
//char byData[4] = {0x87, 0xd6, 0x12, 0x00};
//
//Нужно считать его в переменную типа int в обратном порядке, т.е. должно получится hex-число 0x0012D687
/////////////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <iomanip>
#include <iostream>
/////////////////////////////////////////////////////////////////////////////////////////
bool is_big_endian()
{
    int     i           =   1;
    return  *(char*)&i  ==  0;
}
/////////////////////////////////////////////////////////////////////////////////////////
int     main()
{
    char    bytes[]     =   { 0x87, 0xd6, 0x12, 0x00 };
 
    if  (
            is_big_endian()
        )
    {
        std::swap( bytes[0], bytes[3] );
        std::swap( bytes[1], bytes[2] );
    }
 
    int     n   =   *reinterpret_cast< int* >( bytes );
 
    std::cout   <<  std::hex
                <<  n
                <<  std::endl;
 
    system("pause");
}
 
Текущее время: 21:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru