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

Обьясните понятие как работает Операция языка - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Почему в switch нельзя определять переменные? http://www.cyberforum.ru/cpp-beginners/thread926520.html
int main() { setlocale(LC_ALL, "Russian"); int n; std::cout << "Введите число: "; std::cin >> n; switch (n)
C++ Проясните освобождение памяти Допустим есть такой код: typedef struct COORDINATE { QVector<int> x; QVector<int> y; QVector<int> z; } Coordinate; public: void SaveCoord(); http://www.cyberforum.ru/cpp-beginners/thread926507.html
Упрощение логического выражения C++
Всем привет. Сейчас решаю задачу про шахматного коня по книжке Дейтелов. Там предлагается высчитать доступность каждой клетки и двигать коня туда, где доступность наименьшая. Чтобы ее рассчитать,...
C++ Тип string и subscript out of range
Доброго времени дня. Такая проблема. Обращаюсь к отдельному элементу массива: #include <iostream> #include <string> #include <conio.h> using namespace std;
C++ Если кого не затруднит, посмотрите где у меня ошибка http://www.cyberforum.ru/cpp-beginners/thread926474.html
Вот задание: Даны две последовательности a1, a2, …an и b1, b2, …bm. (n>m). В каждой из них члены различны. Верно, ли что все члены второй последовательности входят в первую последовательность? У...
C++ char[] #include <iostream> using namespace std; #define N 4 #define S 2 int main() { int rate; int s=0; подробнее

Показать сообщение отдельно
Retyrn0
45 / 45 / 3
Регистрация: 24.06.2013
Сообщений: 677
Завершенные тесты: 1
21.07.2013, 15:40
Не за что! Меня когда-то умные дядьки посылали по сяким ссылкам, а я решил, что быстрее самому всё методом тыка понять - вот основная идея операции сдвига. Нужно учесть, что это сдвиг положительного числа.

Если, например, число отрицательное, то крайний левый (знаковый) бит имеет значение 1 - оно там и останется, т.е. все биты сдвинутся, а первый слева бит так и останется 1.

Пример:

2 в 2-й системе = 0010,
-2 в 2-й системе = 1010 - разница только в крайнем левом бите. Так вот, если переменная может хранить отрицательное значение (тип signed), то все биты будут сдвигаться так же, как в беззнаковом (unsigned), кроме крайнего левого - он будет всегда оставаться неизменным. Вот и всё - всё просто)
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru