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

Поразрядные операторы сдвига - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка http://www.cyberforum.ru/cpp-beginners/thread345744.html
Объясните в чем проблема (выдает ошибку) "вычисление объема методом Монте-Карло" #include<iostream> #include<windows.h> #include<cmath> using namespace std; int main() { //Чисо пи const double pi=3.1415; //Рабочие переменные программы
C++ Использование *& Помогите пожалуйста! На форуме не нашёл ответа.. объясните следующую строку void func1(class1*&) class class2 { class2(); ~class2(); void func1(class1*&);//что означает class1*& } http://www.cyberforum.ru/cpp-beginners/thread345726.html
C++ Псевдографика
Мне нужно консольное псевдографическое приложение. Функции вроде printf и std::cout выводят информацию с новой строчки. А можно как нибудь в C++ переписать какую нибудь из уже выведеных? Например после выполнения такого кода: printf("1 строка"); printf("2 строка"); printf("3 строка"); могу я во второй строке заменить несколько букв без очистки экрана и "рисования" заново?
Неудается добавить в автозагрузку! C++
Привет всем! Такая проблема. Пытаюсь средствами С++ добавить прогу в автозагрузку, в итоге не получается, выдает код ошибки 87, смотрел по winerror - это ERROR_INVALID_PARAMETER. В чем проблема? Вроде, все правильно делаю... Вот исходник HKEY hKey = HKEY_LOCAL_MACHINE; TCHAR *sKey = (TCHAR *)"Software\\Microsoft\\Windows\\CurrentVersion\\Run"; LONG a = RegCreateKeyEx(hKey, ...
C++ Ввести с клавиатуры предложение. Удалить из него все буквы о, стоящие на нечетных местах. http://www.cyberforum.ru/cpp-beginners/thread345627.html
Ввести с клавиатуры предложение. Удалить из него все буквы о, стоящие на нечетных местах.
C++ Определить, сколько начальных букв первого слова совпадает с начальными буквами второго слова. Ввести с клавиатуры два слова. Определить, сколько начальных букв первого слова совпадает с начальными буквами второго слова. подробнее

Показать сообщение отдельно
Somebody
2788 / 1602 / 145
Регистрация: 03.12.2007
Сообщений: 4,193
Завершенные тесты: 1
27.08.2011, 11:27
Стандарт C++:
http://www.open-std.org/jtc1/sc22/op...tml#expr.shift
The operands shall be of integral or enumeration type and integral
promotions are performed. The type of the result is that of the pro-
moted left operand. The behavior is undefined if the right operand is
negative, or greater than or equal to the length in bits of the pro-
moted left operand.
Так что может быть что угодно. Размер непосредственного операнда у инструкций сдвига - 8 бит, так что, видимо, компилятор так и компилит сдвиг на 33 (или при вычислении константы сдвигает). Далее описание инструкций:
http://www.intel.com/content/dam/doc...a-z-manual.pdf
The destination operand can be a register or a memory location. The count operand
can be an immediate value or the CL register. The count is masked to 5 bits (or 6 bits
if in 64-bit mode and REX.W is used). The count range is limited to 0 to 31 (or 63 if
64-bit mode and REX.W is used). A special opcode encoding is provided for a count
of 1.
А вообще компилятор должен бы warning давать при таком.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru