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

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

Войти
Регистрация
Восстановить пароль
 
arch-vile
3153 / 768 / 23
Регистрация: 12.07.2009
Сообщений: 3,184
#1

Какое действие выполняют операторы: j1=a<<3; и j2=015>>3; - C++

02.04.2011, 18:20. Просмотров 472. Ответов 3
Метки нет (Все метки)

Доброе время суток...
Имеется кусок программы:
C++
1
2
3
4
5
6
7
8
9
...
int a=18;
int j1, j2;
...
j1=a<<3;
cout<<"j1="<<j1<<"\n";
j2=015>>3;
cout<<"j2="<<j2<<"\n";
...
В результате выполнения программа выводит j1=144, j2=1;

Вопрос, что делают операторы "<<" и ">>" соответсвенно в строках j1=a<<3; и j2=015>>3;
и почему такой результат?..
ЗЫ. Все что накопал по этой теме: http://it.kgsu.ru/C_STREAM/oop_0005.html, но и там написано как-то туманно...
Заранее спасибо...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2011, 18:20     Какое действие выполняют операторы: j1=a<<3; и j2=015>>3;
Посмотрите здесь:

C++ Операторы принятия решения и операторы цикла.
Условные операторы.Операторы цикла C++
Операторы отношений и логические операторы C++
C++ Поразрядные операторы,операторы сдвига
C++ Какую роль выполняют идентификаторы в приведенном коде?
Операторы ветвления и операторы передачи управления C++
Если пользователь ничего не предпринимает в течении нескольких секунд, тогда выполняется какое-либо действие C++
Что выполняют данные процедуры? C++
C++ Что выполняют операции --i и ++j
C++ Коментарии к программе. Объясните пожалуйста что выполняют функции
C++ Сформировать запись «операторы С»: оператор, действие
C++ Создать две функции потоков, которые выполняют следующие расчеты:

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kazak
3032 / 2353 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
02.04.2011, 18:54     Какое действие выполняют операторы: j1=a<<3; и j2=015>>3; #2
Обратите внимание, что операции << и >> обеспечивают связи с потоками только в том случае, если они употребляются справа от имен потоковых объектов. В противном случае они как обычно обозначают операции сдвига.
http://ru.wikipedia.org/wiki/Битовый_сдвиг
arch-vile
3153 / 768 / 23
Регистрация: 12.07.2009
Сообщений: 3,184
02.04.2011, 19:16  [ТС]     Какое действие выполняют операторы: j1=a<<3; и j2=015>>3; #3
Цитата Сообщение от kazak Посмотреть сообщение
обозначают операции сдвига
Вот спасибо...

Добавлено через 10 минут
А, можно еще вопрос - 0 в записи числа 015 означает восьмиричную систему счисления, судя по всему (проверил на куркуляторе)... Почему так и есть ли еще есть какие-либо варианты записи чисел (например как в assemblerе 34h означает что число в шестнадцатиричной системе)?..
Ma3a
Эксперт C++
616 / 460 / 31
Регистрация: 28.01.2011
Сообщений: 605
02.04.2011, 19:20     Какое действие выполняют операторы: j1=a<<3; и j2=015>>3; #4
Еще есть с 0x : 0x15 - шестнадцатеричная форма записи. Если в формате Си, то возможны следующие вариации : '\015' и '\x15' - тоже восьмеричная и шестнадцатеричная запись соответственно.
Yandex
Объявления
02.04.2011, 19:20     Какое действие выполняют операторы: j1=a<<3; и j2=015>>3;
Ответ Создать тему
Опции темы

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