Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6607
  • 博文数量: 5
  • 博客积分: 145
  • 博客等级: 入伍新兵
  • 技术积分: 50
  • 用 户 组: 普通用户
  • 注册时间: 2012-12-01 22:28
文章分类
文章存档

2012年(5)

我的朋友
最近访客

分类: C/C++

2012-12-01 22:36:46

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));
}
阅读(215) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:linux setjmp和longjmp函数

给主人留下些什么吧!~~