C语言网

 找回密码
 加入社区!

QQ登录

只需一步,快速开始

查看: 188|回复: 1

[求助] C语言位运算的几个问题 [复制链接]

Rank: 2

主题
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位)。

Rank: 2

主题
3
帖子
35
C币
83 枚
在线时间
8 小时
发表于 2011-12-2 11:31:40 |显示全部楼层
相当郁闷啊,这么长时间没人解答!
您需要登录后才可以回帖 登录 | 加入社区!

C语言 ( 粤ICP备11042647号-2 )

GMT+8, 2012-5-20 18:15

©2009-2011 cyuyan.com.cn

回顶部