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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
shyrik2014
3 / 3 / 2
Регистрация: 31.10.2009
Сообщений: 112
#1

Программка на Си++ - C++

20.09.2010, 21:08. Просмотров 976. Ответов 15
Метки нет (Все метки)

Добрый вечер, пишу свою первую программу на с++ и вот какое условие стоит в ней, программу написал и она отрабатывает, но не могу понять один нюанс b>>2 побитовое смещение, как оно выполняется, вот полное условие задачи a+=b+=c*=b>>2, при a=4,b=5,c=6 результат выходит 15, объясните последнее действие с побитовым смещением?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
2842 / 1779 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
20.09.2010, 21:18     Программка на Си++ #2
>> - ето оператор иницыализацыи переменной з клавиатуры.

Шилдт
Етот оператор присваивает переменной значение введёное с клавиатуры
neske
1463 / 830 / 69
Регистрация: 26.03.2010
Сообщений: 2,830
20.09.2010, 21:19     Программка на Си++ #3
Asics^, прошу прощения, но вы чего несете то ?)
asics
Freelance
Эксперт C++
2842 / 1779 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
20.09.2010, 21:26     Программка на Си++ #4
Цитата Сообщение от neske Посмотреть сообщение
Asics^, прошу прощения, но вы чего несете то ?)
А что я не так написал ?
PointsEqual
ниначмуроФ
833 / 517 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
20.09.2010, 21:41     Программка на Си++ #5

Не по теме:

shyrik2014, зачем картинку мою украл?



Добавлено через 3 минуты
Цитата Сообщение от Asics^ Посмотреть сообщение
А что я не так написал ?
>> - перегруженный оператор, он и для ввода и для сдвига

Добавлено через 1 минуту
Цитата Сообщение от shyrik2014 Посмотреть сообщение
при a=4,b=5,c=6 результат выходит 15
4+5+6=15 верно
shyrik2014
3 / 3 / 2
Регистрация: 31.10.2009
Сообщений: 112
20.09.2010, 21:47  [ТС]     Программка на Си++ #6
Цитата Сообщение от PointsEqual Посмотреть сообщение

Не по теме:

shyrik2014, зачем картинку мою украл?



Добавлено через 3 минуты

>> - перегруженный оператор, он и для ввода и для сдвига

Добавлено через 1 минуту

4+6+5=15 верно
А что этот оператор сдвигает, значение 2-это количество позиций на которое он сдвигает результат 15?
fasked
Эксперт C++
4932 / 2512 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
20.09.2010, 21:49     Программка на Си++ #7
Цитата Сообщение от shyrik2014 Посмотреть сообщение
что этот оператор сдвигает
биты. http://ru.wikipedia.org/wiki/Битовый_сдвиг
PointsEqual
ниначмуроФ
833 / 517 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
20.09.2010, 21:52     Программка на Си++ #8
Цитата Сообщение от shyrik2014 Посмотреть сообщение
a+=b+=c*=b>>2, при a=4,b=5,c=6
(5>>2) == 1
c = c * 1 == 6
b = b + 6 == 11;
a = a + 11 ==15
asics
Freelance
Эксперт C++
2842 / 1779 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
20.09.2010, 21:52     Программка на Си++ #9
neske
Я так и не понял вашего удивление по поводу моего поста ..
fasked
Эксперт C++
4932 / 2512 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
20.09.2010, 22:04     Программка на Си++ #10
Asics^, потому что >> или << это операторы битового сдвига. все остальное это просто перегруженные операторы. я например могу в своем классе перегрузить такие операторы так, что они будут выполнять умножение и деление, что же теперь всем рассказывать, что это операторы умножения и деления?
shyrik2014
3 / 3 / 2
Регистрация: 31.10.2009
Сообщений: 112
20.09.2010, 22:07  [ТС]     Программка на Си++ #11
Цитата Сообщение от PointsEqual Посмотреть сообщение
(5>>2) == 1
c = c * 1 == 6
b = b + 6 == 11;
a = a + 11 ==15
(5>>2) == 1 поясните вот эту строчку подробнее?
PointsEqual
ниначмуроФ
833 / 517 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
20.09.2010, 22:07     Программка на Си++ #12
5 = 101
101 >> 2 = 1
1 = 1

все просто
shyrik2014
3 / 3 / 2
Регистрация: 31.10.2009
Сообщений: 112
20.09.2010, 22:17  [ТС]     Программка на Си++ #13
Цитата Сообщение от PointsEqual Посмотреть сообщение
5 = 101
101 >> 2 = 1
1 = 1

все просто
Спасибо за разъяснение!
asics
Freelance
Эксперт C++
2842 / 1779 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
20.09.2010, 22:24     Программка на Си++ #14
fasked, Но то что я написал в своём посте,я же не придумал,ето так и есть.
neske
1463 / 830 / 69
Регистрация: 26.03.2010
Сообщений: 2,830
20.09.2010, 22:29     Программка на Си++ #15
Asics^, но вы вопрос ТС видели?
Он спрашивает про битовые операции, ваши слова были не уместны.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.09.2010, 23:15     Программка на Си++
Еще ссылки по теме:

C++ c программка со строками
C++ программка по шаблонам
Не компилируется программка C++
C++ Не запускается программка
Программка зависает C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
rangerx
1923 / 1532 / 139
Регистрация: 31.05.2009
Сообщений: 2,894
20.09.2010, 23:15     Программка на Си++ #16
Цитата Сообщение от shyrik2014 Посмотреть сообщение
но не могу понять один нюанс b>>2 побитовое смещение, как оно выполняется
Допустим, есть у нас некое десятичное число, например 50000. Удали в нём один разряд и получишь 5000. Удали ещё один, будет 500 и т.д. Т.е. мы каждый раз выполняли, так сказать, сдвиг вправо на один десятичный разряд.
50000
_5000
__500
Число, как нетрудно заметить, становится в десять раз меньше после каждого такого сдвига вправо. С двоичными числами происходит тоже самое, только они становятся меньше не в десять раз, а в два. Т.е., допустим у нас есть некое число, например 10(в десятичной). В двоичном виде это 1010. делаем сдвиг вправо
1 0 1 0 --> 10
0 1 0 1 --> 5
0 0 1 0 --> 2
0 0 0 1 --> 1
вот и всё.
Yandex
Объявления
20.09.2010, 23:15     Программка на Си++
Ответ Создать тему
Опции темы

Текущее время: 14:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru