<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++ 位操作实现数据标志位获取与更新
最新推荐文章于 2026-05-05 08:27:36 发布
本文提供了一个使用C++实现的位操作示例程序,通过该程序可以获取和设置整数中特定位的状态。程序首先展示了如何读取一个整数变量中各比特位的状态,并将这些状态打印出来;然后演示了如何修改指定比特位的状态,并再次打印修改后的比特位状态。
开发板推荐:天空星STM32F407VET6开发板
超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印
开发板推荐:天空星STM32F407VET6开发板
超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

5450

被折叠的 条评论
为什么被折叠?



