Следующая программа наглядно иллюстрирует результат использования операторов сдвига.
// Демонстрация выполнения поразрядного сдвига.
#include
using namespace std;
void disp_binary(unsigned u);
int main()
{
int i=1, t;
for(t=0; t<8; t++) {
disp_binary(i);
i = i << 1;
}
cout << "\n";
for(t=0; t<8; t++) {
i = i >> 1;
disp_binary(i);
}
return 0;
}
// Отображение битов, составляющих байт.
void disp_binary(unsigned u)
{
register int t;
for(t=128; t>0; t=t/2)
if(u & t) cout << "1";
else cout << "0 ";
cout << "\n";
}
Результаты выполнения этой программы таковы.
0 0 0 0 0 0 0 1
0 0 0 0 0 0 1 0
0 0 0 0 0 1 0 0
0 0 0 0 1 0 0 0
0 0 0 1 0 0 0 0
0 0 1 0 0 0 0 0
0 1 0 0 0 0 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 1 0 0 0
0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 1
Одним из самых замечательных операторов C++ является оператор
if(условие)
переменная = выражение 1;
else
переменная = выражение 2;
Здесь значение, присваиваемое переменной, зависит от результата вычисления элемента
Оператор
Выражение1? Выражение2 : Выражение3;
Все элементы здесь являются выражениями. Обратите внимание на использование и расположение двоеточия.
Значение
while(something) {
х = count > 0 ? 0 : 1;
// ...
}
Здесь переменной
while(something) {
if(count >0) x = 0;
else x = 1;
// ...
}
А вот еще один пример практического применения оператора
/* Эта программа использует оператор ? для предотвращения деления на нуль.
*/
#include
using namespace std;
int div_zero();
int main()
{
int i, j, result;
cout << "Введите делимое и делитель: ";
cin >> i >> j;
// Эта инструкция не допустит возникновения ошибки деления на нуль.
result = j ? i/j : div_zero();
cout << "Результат: " << result;
return 0;
}
int div_zero()
{
cout << "Нельзя делить на нуль. \n";
return 0;
}
Здесь, если значение переменной
В C++ предусмотрены специальные составные операторы присваивания, в которых объединено присваивание с еще одной операцией. Начнем с примера и рассмотрим следующую инструкцию.
х = x + 10;
Используя составной оператор присваивания, ее можно переписать в таком виде.
х += 10;
Пара операторов