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

Как реализовать правильный побитовый сдвиг? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Реализовать функции, позволяющие добавлять/удалять блок элементов в массива/из массива http://www.cyberforum.ru/cpp-beginners/thread1802880.html
Уважаемые форумчане, помогите, пожалуйста, с написанием программы. Нужно в динамическом одномерном массиве, размер которого указывает пользователь, заполнить его случайными числами. 1) Требуется создать функцию, позволяющую добавлять блок элементов в конец массива. Количество добавляемых элементов и их значения указывает пользователь. 2) Создать функцию, позволяющую удалять блок элементов,...
C++ Заполнить динамический массив случайными числами и реализовать функции работы с массивом согласно условию Всем доброго времени суток!) Уважаемые знатоки и пользователи, помогите, пожалуйста, написать следующую программу: Сформировать динамический одномерный массив, размер которого массива указывает пользователь и заполнить его случайными числами. Составить функции используя указатели для подсчета в передаваемом массиве: - количества элементов больше среднего; - количества элементов равных... http://www.cyberforum.ru/cpp-beginners/thread1802878.html
C++ Разместить в массиве все положительные элементы в начале, отрицательные - в конце, посередине - нули
Всем доброго времени суток! Большая просьба помочь написать программу. Нужно сформировать 2 одинаковых динамических одномерных массива, где размер массивов указывает пользователь. Заполнить 1-й массив случайными числами. Пользуясь двумя указателями на массив целых чисел, разместить во 2-ом массиве в левой части все элементы с положительными значениями, элементы с отрицательными значениями - в...
Не получается создать правильный цикл C++
Нужен цикл который будет выполнять это: //1. Итерация G = M - (G * M); //2. Итерация G = M - ((G * M) + (G * M)); //3. Итерация G = M - ((G * M) + (G * M) + (G * M)); Количество итераций должно иметь возможность меняться не нарушая логику.
C++ Создать иерархию наследования с абстрактным базовым классом http://www.cyberforum.ru/cpp-beginners/thread1802851.html
Доброго времени суток! Помогите, пожалуйста, сделать: 2) Создать абстрактный базовый класс с виртуальной функцией "Площадь". Создать произвольные классы "Прямоугольник", "Круг", "Прямоугольны треугольник", "Трапеция" со своими функциями площади. Для проверки определить массив ссылок на абстрактный класс, которым присваивается адреса различных объектов; В Си шарю не очень, трудно сделать...
C++ Итерационное вычисление частных производных доброго времени суток в задачах по численным методам столкнулся с необходимостью вычисления частных производных сами вычисления "в лоб" вопросов не вызывают, работаем строго по определению: double e=0.000001; //точность double f(double x1,double x2,double x3){ // сама функция return x1+3*x2+2*x3*x3; } подробнее

Показать сообщение отдельно
BESSON_off
 Аватар для BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 329
05.09.2016, 03:39     Как реализовать правильный побитовый сдвиг?
Всем привет!
У меня тупик в неожиданном месте)
Я имею пару чаров и должен из них собрать int:
C++
1
2
3
4
5
6
7
8
char a1 = 224;
char a2 = 18;
 
int temp = 0;
 
temp += a1;
temp <<= 8;
temp += a2;
Но при таком подходе, если первый элемент имеет выставленный крайний левый бит, то все остальные левые биты автоматически выставляются в 1... То есть в бинарном виде 224 == 11100000 и так как левый бит равен 1, то при добавлении в int после строки temp += a1; temp выглядит так: 11111111111111111111111111100000...

Как сделать так, чтобы левые биты не выставлялись автоматически и я смог правильно собрать int из чаров?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 15:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru