- 主题
- 3
- 帖子
- 35
- 精华
- 0
- 积分
- 90
- C币
- 83 枚
- 在线时间
- 8 小时
- 注册时间
- 2011-9-30
- 最后登录
- 2011-12-5
- 性别
- 保密

- 主题
- 3
- 帖子
- 35
- C币
- 83 枚
- 在线时间
- 8 小时
|
发表于 2011-11-7 18:18:14
|显示全部楼层
各位朋友,小弟在学习的过程中遇到这么几个问题,希望大家能帮忙解答一下,不胜感激!
一、这段程序虽然编译成功,但不是很理解,是在书上看到的,希望帮忙解释一下,最好具体的说说每一步怎么实现。
view sourceprint?01 main()
02 {
03 int a,b,c,d,n1,n2,n,c1,c2;
04 a=0x0abf89de;
05 n1=5;
06 n2=8;
07 n=sizeof(int)*8;
08 b=~0;
09 c1=~(b<<(n-n1+1));
10 printf("c1=%x\n",c1);
11 c2=(b<<(n-n2));
12 printf("c2=%x\n",c2);
13 c=c1&c2;
14 printf("c=%x\n",c);
15 d=a&c;
16 d=d>>(n-n2);
17 printf("d=%x\n",d);
18 }
二,要求运用位运算符编写程序,对一个整数实现循环左移n位。
三,编写程序,用字符型变量存放一个整数(0-255),对该数的二进制形式
取出它的奇数位(即从左边的第1、、3、5、7位)。
|
|