c++ 位操作实现数据标志位获取与更新

<strong><span style="font-size:18px;">#include "stdafx.h"
#include <iostream>
using namespace std;

int  get_state(int& value,int index)  
{ 
	if((1<< (index)) & value) 
	{  
		return 1; 
	} 
	else 
	{ 
		return 0; 
	} 
}
void set_state(int& value,int index,int state)
{
	int nFlag = 1;

	nFlag = nFlag << index;

	if (state  == 0)
	{
		value = value & (~nFlag);
	}
	else if(state == 1)
	{
		value = value | nFlag;
	}
}

int _tmain(int argc, _TCHAR* argv[])
{

	int value = 4095;


	for (int i=11;i >= 0;i--)
	{
		cout<<get_state(value,i);
	}
	cout<<endl;

	set_state(value,1,0);

	for (int i=11;i >= 0;i--)
	{
		cout<<get_state(value,i);
	}
	cout<<endl;
	
	
	
	system("pause");
	return 0;
}
</span></strong>

你可能感兴趣的:(C++,位操作)