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

что означает это - C++

Восстановить пароль Регистрация
 
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
28.03.2010, 14:32     что означает это #1
C++
1
2
3
int a=5;
a<<=3;
cout<<a;
выводит 40 оО
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
28.03.2010, 15:04     что означает это #2
Цитата Сообщение от МедведЪ Посмотреть сообщение
<<=
Это сдвиг влево.
Число пять в двоичном виде: 0000 0101.
Цитата Сообщение от МедведЪ Посмотреть сообщение
C++
1
a<<=3;
В данной строке число сдвигается на влево на три бита, получаеться: 0010 1000, или 40 в десятичной системе.
Читай про битовые сдвиги.
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
28.03.2010, 21:00  [ТС]     что означает это #3
а смысл этого?
maxik42
 Аватар для maxik42
4 / 19 / 3
Регистрация: 22.03.2010
Сообщений: 131
28.03.2010, 21:12     что означает это #4
Цитата Сообщение от МедведЪ Посмотреть сообщение
а смысл этого?
Смысл в том что можно делить на 2 или умножать на 2. эти операции исполняються по идее быстрее чем стандартное умножение и деление!
Monte-Cristo
 Аватар для Monte-Cristo
2805 / 1370 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
28.03.2010, 21:17     что означает это #5
МедведЪ, двоичная логика.. при программировании микроконтроллеров, очень полезная штука.
потому что, "минимальная" переменная в С/С++ - это char, являющаеся одним байтом (8 - бит).. в микроконтроллерах, как правило, память ограничена.. и приходится экономить, храня 8 состояний в одной переменной (флагов, например).. и в этом деле необходима двоичная логика.

вообщем, долго объяснять.. когда до растешь до этого уровня - поймешь.

Добавлено через 2 минуты
Цитата Сообщение от maxik42 Посмотреть сообщение
Смысл в том что можно делить на 2 или умножать на 2. эти операции исполняються по идее быстрее чем стандартное умножение и деление!
на современный компиляторах - сомнительно.. в них встроены хороший оптимизаторы, поэтому деление на степеня двоек, как правило, заменяются на сдвиги
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
28.03.2010, 22:00  [ТС]     что означает это #6
Monte-Cristo, микроконтроллер это что?типа hard?я в ближащем будущем буду программированием чипов заниматься.
Yandex
Объявления
28.03.2010, 22:00     что означает это
Ответ Создать тему
Опции темы

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