Форум программистов, компьютерный форум 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++
странная работа компилятора(строки) в кратце проблема выглядет так определяем переменную типа широкой строки считаем ее длину передаем указатель строки в функцию и в ней уже длина...
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 прочитать и запихнуть в массив? И еще, есть...
C++ Используя класс list, в котором храняться фамилии студентов группы, организовать поиск по фамилии Дали задание: используя класс list, в котором храняться фамилии студентов группы, организовать поиск по фамилии. Не могу создать list с уже заданным содержимым. подробнее

Показать сообщение отдельно
ValeryS
Модератор
6679 / 5088 / 475
Регистрация: 14.02.2011
Сообщений: 17,072
23.08.2014, 23:29
Цитата Сообщение от kvigon Посмотреть сообщение
C
1
2
3
4
5
int c = 0;
c += byData[3]*0x01000000;
c += byData[2]*0x00010000;
c += byData[1]*0x00000100;
c += byData[0];
здесь нужно использовать не арифметическое а логическое сложение |(ИЛИ)
и на всякий случай маску, чтобы быть точно уверенным, а не закладываться на приведение
попробуй так
C++
1
2
3
4
5
int c = 0;
c |= (byData[3]*0x01000000)&0xFF000000;
c |= (byData[2]*0x00010000)&0x00FF0000;
c |= (byData[1]*0x00000100)&0x0000FF00;
c |= (byData[0])           &0x000000FF;
Цитата Сообщение от kvigon Посмотреть сообщение
Вместо лидирующих нулей появляются ffff, и в сумме это все дает неверное значение.
это из за того что число изначально знаковое и при приведении копируется знаковый бит
Цитата Сообщение от kvigon Посмотреть сообщение
char byData[4] = {0x87, 0xd6, 0x12, 0x00};
C++
1
unsigned char  byData[4] = {0x87, 0xd6, 0x12, 0x00};
вот так должно сработать и при сложении
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru