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

В чем может быть ошибка? (пример с побитовым сдвигом) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Массив 7 битовых переменных http://www.cyberforum.ru/cpp-beginners/thread699512.html
Здравствуйте!Помоги,пожалуйста разобраться с программой: Напишите программу определения максимального значения элемента массива, состоящего из 7-ми битовых переменных Максимальный элемент то можно найти,а вот как понять массив 7 битовых переменных? Заранее благодарю!!!
C++ 2. В одномерном массиве найти среднее арифметическое для элементов, расположенных между максимальным и минимальным Помогите пожалуйста я не фига не понимаю с си. Ps если можно распишите по подробней. В одномерном массиве найти среднее арифметическое для элементов, расположенных между максимальным и минимальным. Если они следуют один за другим, считать его равным нулю. Количество элементов в массиве не более 200. Формат числа цц.ц. Массив распечатывать по десять элементов на строке. http://www.cyberforum.ru/cpp-beginners/thread699510.html
C++ Задача на теорию автоматов
Условие во вложение. Не совсем понимаю алгоритм. Есть какие-нибудь идеи?
Подсчитать количество элементов массива с одинаковым местоположением, которые равны C++
Даны два массива равной длины.Подсчитать количество элементов с одинаковым местоположением, которые: а) равны б)элемент первого массива больше в)элемент второго массива больше
C++ из паскаля в C++ http://www.cyberforum.ru/cpp-beginners/thread699493.html
3)Даны два действитьельных числа. Заменить первое число нулем, если оно меньше или равно второму и оставить числа без изменения в противном случае. Program dvecifri Var a, b: real; begin Writeln('Vvedite A:'); Readln(A); Writeln('Vvedite B:'); Readln(B); if A <= B then A := 0;
C++ Устранить из строки все заданные группы букв Создать функцию обработки строки, который может содержать любое количество произвольных символов. Устранить все заданные группы букв, например: ТИП подробнее

Показать сообщение отдельно
Excogit8er
2 / 2 / 0
Регистрация: 23.10.2012
Сообщений: 66

В чем может быть ошибка? (пример с побитовым сдвигом) - C++

16.11.2012, 16:25. Просмотров 315. Ответов 8
Метки (Все метки)

Всем доброго дня)

В одной из книжек по С++ (Horton) наткнулся на такую вот небольшую задачку:

C++
1
2
3
unsigned s = 555;
int i = (s >> 4) & ~(~0 << 3);
cout << i;
Дескать, не компилируя, посчитайте, какое число выведет программа?
Я посчитал:
1. ~(~0 << 3) будет 7 (инвертируем ноль, сдвигаем на 3 единицы влево, (типа умножаем на 8), опять инвертируем значение операнда - в результате имеем бинарные 111 или десятичную 7).
2. 255 (бинарная 11111111) при сдвиге вправо дает 15 (или 1111).
3. 15 & 7 = 7

Т.е. на выходе получаем 7. Скомпилировал - программа выводит 2. What the fuck? Ничего не понимаю, в чем ошибся?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru