#include <stdio.h>
unsigned int set_bit(unsigned int num, int pos, int flag)
{
int n = 1;
n = n << pos; //将n的第pos位置1,其他全为0
if (flag == 0)
{
num = num&(~n);//将num的n位置0
}
else if (flag == 1)
{
num = num | n;
}
return num;
}
调用如下:
int a = 0x10;
//位置从0开始
a = set_bit(a,1,1);//将a的第2位,置1,结果为10010即0x12
转载于:https://blog.51cto.com/9233403/1971827