#include
using namespace std ;
int main( int nNumberofArgs , char* pszArgs[ ] )
{
/* отмена формата по умолчанию( десятичного ), или можно и так отменить cout.unsetf( cout.dec ) */
cout.unsetf( ios::dec ) ;
/* теперь можно установить вывод переменных в шестнадцатеричном виде */
/* установка вывода переменных в шестнадцатеричном виде, или можно и так cout.setf( cout.hex ) */
cout.setf( ios::hex ) ;
/* инициализация двух аргументов */
int nArg1 ;
nArg1 = 0x1234 ;
int nArg2 ;
nArg2 = 0x00ff ;
/* Выполнение логических операций */
/* Сначала применяем унарный оператор NOT */
cout << "Arg1 = 0x" << nArg1 << "\n" ;
cout << "Arg2 = 0x" << nArg2 << "\n" ;
cout << "~nArg1 = 0x" << ~nArg1 << "\n" ;
cout << "~nArg2 = 0x" << ~nArg2 << "\n" ;
/* Теперь — бинарные операторы */
cout << "nArg1 & nArg2 = 0x"
<< ( nArg1 & nArg2 )
<< "\n" ;
cout << "nArg1 | nArg2 = 0x"
<< ( nArg1 | nArg2 )
<< "\n" ;
cout << "nArg1 ^ nArg2 = 0x"
<< ( nArg1 ^ nArg2 )
<< "\n" ;
/* Пауза для того, чтобы посмотреть на результат работы программы */
system( "PAUSE" ) ;
return 0 ;
}
_________________
64 стр. Часть 1. Первое знакомство с С++
Первая инструкция нашей программы ( та, которая следует за ключевым словом main ) — cout.setf( ios::hex ) ; — меняет используемый по умолчанию десятичный формат вывода на шестнадцатеричный ( поверьте мне, это сработает ).
В остальном программа очевидна. Присвоив значения аргументам nArg1 , nArg2 , она выводит все варианты побитовых вычислений над этими переменными. Результат выполнения программы будет выглядеть следующим образом:

Arg1 = 0x1234
Arg2 = 0xff
~nArg1 = 0xffffedcb
~nArg2 = 0xffffff00
nArg1 & nArg2 = 0x34
nArg1 | nArg2 = 0x12ff
nArg1 ^ nArg2 = 0x12cb
Press any key to continue...
Практическое применение логических вычислений...65
На первый взгляд описанные операторы кажутся оторванными от жизни, но поверьте, в программировании они используются очень часто. Потерпите до следующей главы — и вы поймёте всю важность логических вычислений в программах.
_________________
65 стр. Глава 4. Выполнение логических операций
Глава 5. ОПЕРАТОРЫ УПРАВЛЕНИЯ ПРОГРАММОЙ...66
ОГЛАВЛЕНИЕ
В этой главе...
►Управление ходом программы с помощью команд ветвления 66
►Выполнение циклов 68
►Вложенные команды управления 76
►Инструкция выбора 77
Простые программки, которые появлялись в первых четырёх главах, обрабатывали фиксированное количество вводов и выводов результатов вычислений, после чего завершали работу. Эти приложения были лишены какого бы то ни было контроля над работой программы, в частности не выполняли никаких проверок. Но компьютерные программы могут принимать решения. Вспомните: когда пользователь нажимает клавиши, компьютер реагирует на это выполнением соответствующих команд.
Например, если пользователь нажимает , компьютер копирует содержимое выделенного блока в буфер обмена. Если пользователь перемещает мышь, на экране двигается её курсор. Этот список можно продолжать до бесконечности. Программы же, которые не принимают никаких решений, неизбежно скучны и однообразны.
Команды, управляющие ходом программы, указывают на то, какие действия она должна выполнить в зависимости от результата вычисления какого-либо логического выражения ( о которых шла речь в главе 4, "Выполнение логических операций"). Существует три типа управляющих инструкций: операторы ветвления ( или условного перехода ), цикла и выбора.
►Управление ходом программы с помощью команд ветвления...66
Проще всего управлять ходом программы с помощью инструкции ветвления, которая позволяет программе, в зависимости от результата логического выражения, решить, по какому из двух возможных путей выполнения инструкций следует двигаться дальше. В С++ оператор условного перехода реализуется с помощью инструкции if :
if ( m > n )
{
/* 1-я последовательность операторов. Инструкции, которые должны быть выполнены, если m больше n */
Читать дальше