Chinaunix首页 | 论坛 | 博客
  • 博客访问: 132606
  • 博文数量: 38
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 191
  • 用 户 组: 普通用户
  • 注册时间: 2016-06-16 11:31
个人简介

嵌入式新人

文章分类

全部博文(38)

文章存档

2016年(38)

我的朋友

分类: 嵌入式

2016-06-17 22:04:06

1 =、|=和&=的作用
    在位运算中我们经常使用赋值符合=,|=和&=,它们的作用分别是
1)赋值语句a = (1<<2)中,a的bit2位为1,其余位为0,如在32bit系统中,a 的值为0x4。
2)运算语句a |= (1<<2)中,a的bit2位被置1,其余位保持不变,如在32bit系统中,a的原值为0x8,则运算结果为0xc。
3)运算语句a &= (0<<2)中,a的所有位被置0,如在32bit系统中,a的原值为0xc,则运算结果为0x0。
2 实例验证    
    例程代码

点击(此处)折叠或打开

  1. #include <stdio.h>
  2. void main()
  3. {
  4.     
  5.     unsigned int a = 0x8;
  6.     unsigned int b = 0x8;
  7.     unsigned int c = 0x8;
  8.     a = (1<<2); // 4
  9.     b |= (1<<2); // C
  10.     c &= (0<<2); // 0
  11.     unsigned int d = 0x8;
  12.     unsigned int e = 0x8;
  13.     unsigned int f = 0x8;
  14.     d = (1<<4); //10
  15.     e |= (1<<4); // 18
  16.     f &= (0<<4); // 0
  17. printf("a = 0x%x, b = 0x%x, c = 0x%x \nd = 0x%x, e = 0x%x, f = 0x%x\n ",a,b,c,d,e,f);
  18. }
运行结果验证了1中的结论。


 
阅读(2476) | 评论(0) | 转发(0) |
0

上一篇:ARM的字对齐

下一篇:详解a、&a、*a、**a

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