Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
1 / 1 / 0
Регистрация: 02.11.2014
Сообщений: 57
1

Объясните пожалуйста вывод в поток

13.11.2014, 18:24. Просмотров 364. Ответов 4
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
 
int main(int argc, char** argv)
{
   int x = 0;
   int y = 0;
 
   if (x++ && y++)
   {
     y += 2;
   }
 
   cout << x + y << std::endl;
 
   
    
    system("pause");
return 0;
}
Почему выводится на экран 1?


C++
1
2
 cout << (5 << 3); 
    cout << 22 / 5 * 3;
Почему выводится 40 и 12?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.11.2014, 18:24
Ответы с готовыми решениями:

Объясните код, пожалуйста, файловый поток
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; using namespace std; void main()...

Максимальный поток в графе, объясните идиоту
const int inf = 1000*1000*1000; typedef vector&lt;int&gt; graf_line; typedef vector&lt;graf_line&gt;...

Объясните, пожалуйста
Что значит ! корень из x?

Объясните пожалуйста
Нашёл простенький учебничек начал читать, дошёл до форм и тут появилась проблемка &lt;FORM...

4
118 / 118 / 41
Регистрация: 14.12.2013
Сообщений: 352
13.11.2014, 18:26 2
Цитата Сообщение от IramKenZo Посмотреть сообщение
Почему выводится 40 и 12?
потому что в первом случае идет сдвиг битов вправо: было 101, стало 101000.
во втором 22 / 5 дает 4, т.к. деление целочисленных типов дает целочисленный ответ.
1
118 / 118 / 41
Регистрация: 14.12.2013
Сообщений: 352
13.11.2014, 18:37 3
Цитата Сообщение от IramKenZo Посмотреть сообщение
Почему выводится на экран 1?
потому что при проверке условия if x имеет значение 0. вторая часть условия не проверяется, т.к. первая часть ложна, и весь результат будет 0. однако при проверке первой части условия выполнилось x++, которое возвращает текущее значение (т.е. 0), но увеличивает его на 1. соответственно x + y = 1 + 0 (y у нас не менялся, а x значение поменял) дает 1.
сумбурно, но, надеюсь, понятно.

Добавлено через 6 минут
Цитата Сообщение от mss307 Посмотреть сообщение
было 101, стало 101000.
число 5 в двоичной системе счисления = 101.
а сдвиг на 3 влево означает перемещение 101 влево, получается число 101000, которое при переводе в десятичную систему счисления равно 40.

Добавлено через 2 минуты
IramKenZo, понятно? если нет, то спрашивай, не стесняйся.
1
1 / 1 / 0
Регистрация: 02.11.2014
Сообщений: 57
13.11.2014, 18:38  [ТС] 4
Спасибо большое)
0
118 / 118 / 41
Регистрация: 14.12.2013
Сообщений: 352
13.11.2014, 18:46 5
IramKenZo, на здоровье!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.11.2014, 18:46

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Объясните пожалуйста
Всем привет! Я только учусь и хочу спросить вот такой вопрос: Я пробую создать конфигурацию для...

Объясните пожалуйста
Объясните пожалуйста чем является число 0.785 в этой задаче. Задача: #include &lt;stdio.h&gt; #include...

Объясните пожалуйста
Как работает эта программа? #include &lt;iostream&gt; using namespace std; int main() { char...

объясните пожалуйста
как программировать по формуле?

Объясните пожалуйста
Вот нашел в инете образец кода, по обработке события нажатия кнопки. Приложение то было написано с...

Объясните, пожалуйста
Это плитки с цифрами и типо они спавняться, объясните как это работает или опишите саму процедуры...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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