С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Не могу понять, как работает побитовый сдвиг - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Необходимо заменить нулевые элементы матрицы вещественных чисел размерностью 5 на 5 ее максимальным элементом http://www.cyberforum.ru/cpp-beginners/thread1008109.html
Помогите пожалуйста сделать программу на Borland C++ 6. Заменить нулевые элементы матрицы вещественных чисел размерностью 5x5 ее максимальным элементом
C++ Что делает данная программа? #include <stdarg.h> #include <iostream.h> #include <conio.h> void sum (char *fmt,...) { va_list ap; int a; double b; long c; http://www.cyberforum.ru/cpp-beginners/thread1008107.html
C++ Динамические структуры данных
Написать программу для работы с потоком символов. Использовать функции добавления, удаления и чтения данных из очереди.
Одноименные массивы С++ C++
Если в указанном массиве хотя бы одно значение элемента лежит в промежутке , то все остальные элементы, которые не попадают в промежуток заменить на z. Значения х,у,z вести с клавы. Проблема:...
C++ Составить программу, реализующую циклический процесс http://www.cyberforum.ru/cpp-beginners/thread1008081.html
1. Для ряда, члены которого вычисляются по формуле a_n=〖(-1)〗^n∙1/((n+1)(n+2)(n+3)), подсчитать сумму членов ряда с точностью до 0.000001 и сумму первых 10 членов ряда. 2. Вычислить значения t,...
C++ Библиотека с пользовательскими функциями Доброго времени суток! написал ряд функций и классов для использования под DOS и WINDOWS и хочу оформить их в виде библиотеки исходных файлов и с возможностью редактировании. Самое главное... подробнее

Показать сообщение отдельно
RusUaBy
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 20
14.11.2013, 22:14  [ТС]
Цитата Сообщение от programina Посмотреть сообщение
запись 1-8 в 10-тичной системе и в двоичной системе.
Код
 1  00000001
 2  00000010
 3  00000011
 4  00000100
 5  00000101
 6  00000110
 7  00000111
 8  00001000
Например если взять сейчас 8-ку и применить к ней сдвиг, то он вернет другое число:
00001000 сдвинется вправо на две позиции ( 00001000 ) и станет 00000010

C++
int b = 8 >> 2; // 00000010 то есть 2
Обрати внимание, что сдвиг на одну позицию вправо делит число на 2, а влево умножает на 2
Это я понимаю. Но когда я приближаюсь к границе типа int, 32 бита, у меня возникает переполнение, которое портит мне все значение.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.