c语言中,位操作虽然简单,但是非常重要,不论是在实际应用中还是在面试中。
如果你用单片机编过程序,那么你就会知道它的用处(将某个P口的某一位设置
位1或者0,iic中传送一个字节的操作等)。下面这个程序,显示了一些位的简单操作。
#include
void set_1(int *var,int i) //置1
{
*var |=(1<}
void set_0(int *var,int i) //置0
{
*var &=~(1<}
void invert(int *var) //反转
{
int i,temp=0x01;
for(i=0;i<8;i++)
{
if(temp & *var)
*var &=~(1< else
*var |=(1< temp<<=1;
}
}
int get_bit(int *var,int i) //获取某一位
{
return (*var & (0x01<}
int main()
{
int a=0x9b; //1001 1011
printf("%d\n",a);
set_1(&a,6);
printf("%d\n",a); //1101 1011
set_0(&a,6);
printf("%d\n",a); //1001 1011
invert(&a); //0110 0100
printf("%d\n",a);
printf("the 4st bit is %d\n",get_bit(&a,4));
}
阅读(235) | 评论(0) | 转发(0) |