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

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

Восстановить пароль Регистрация
 
arch-vile
 Аватар для arch-vile
3151 / 766 / 23
Регистрация: 12.07.2009
Сообщений: 3,184
02.04.2011, 18:20     Какое действие выполняют операторы: j1=a<<3; и j2=015>>3; #1
Доброе время суток...
Имеется кусок программы:
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++
С++.Операторы в С++: условные операторы, операторы break и continue C++
SFML, произвести какое-либо действие по нажатию мыши
Если пользователь ничего не предпринимает в течении нескольких секунд, тогда выполняется какое-либо действие C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kazak
 Аватар для kazak
3029 / 2350 / 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
 Аватар для arch-vile
3151 / 766 / 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++
612 / 456 / 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;
Ответ Создать тему
Опции темы

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