Простой пример...64
Следующая программа иллюстрирует работу побитовых операторов. В ней инициируются две переменные, к которым применяются операции &, |, ~, ^. Результаты вычислений выводятся на экран.
/* 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...
Больше книг — больше знаний!
Заберите 20% скидку на все книги Литрес с нашим промокодом
ПОЛУЧИТЬ СКИДКУ