Операции сдвига и поразрядные операции в С++ пример кода
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int PORTA = 0;
while(1)
{
cout<<PORTA<<endl; // 0
cout<<(1<<3)<<endl; // 8
cout<<~(1<<3)<<endl; // -9 11110111
PORTA &=~(1<<3);
cout<<PORTA<<endl; // 0
cout<<(1<<0)<<endl; // 1
PORTA |=(1<<0);
cout<<PORTA<<endl; // 1
PORTA |= (1<<2);
cout<<PORTA<<endl; // 5
cout<<~(1<<0)<<endl; // -2 11111110
cout<<~0<<endl; // -1
PORTA &=~(1<<0);
cout<<PORTA<<endl; // 4
cout<<(1<<1)<<endl; // 2
PORTA |=(1<<1);
cout<<PORTA<<endl; // 6
cout<<~(1<<2)<<endl; // -5 11111011
PORTA &=~(1<<2);
cout<<PORTA<<endl; // 2
PORTA |=(1<<3);
cout<<PORTA<<endl; // 10
PORTA &=~(1<<1);
cout<<PORTA<<endl;// 8
PORTA |=(1<<0);
cout<<PORTA<<endl; // 9
system("pause");
return 0;
}
}
Результат работы программы

