Простой пример...64

We use cookies. Read the Privacy and Cookie Policy

Следующая программа иллюстрирует работу побитовых операторов. В ней инициируются две переменные, к которым применяются операции &, |, ~, ^. Результаты вычислений выводятся на экран.

      /* BitTest — инициируются две переменные */

      /*          выводятся  результаты выполнения */

      /*            операторов |, ^, ~ и &  */

      #include <cstdio>

      #include <cstdlib>

      #include <iostream>

      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 << " " ;

         cout << "Arg2          = 0x" << nArg2 << " " ;

         cout << "~nArg1        = 0x" << ~nArg1 << " " ;

         cout << "~nArg2        = 0x" << ~nArg2 << " " ;

         /* Теперь — бинарные операторы */

         cout << "nArg1 & nArg2 = 0x"

               << ( nArg1 & nArg2 )

               << " " ;

         cout << "nArg1 | nArg2 = 0x"

               << ( nArg1 | nArg2 )

               << " " ;

         cout << "nArg1 ^ nArg2 = 0x"

               << ( nArg1 ^ nArg2 )

               << " " ;

         /* Пауза для того, чтобы посмотреть на результат работы программы */

         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...