C语言,关于位运算符的,这个怎么分析啊,有点看不懂,求高手解答啊!谢谢!!
#include<stdio.h>#include<stdlib.h>intmain(){intx=0;inta=11110011;x=a&0x11111111;x+=(...
#include<stdio.h>
#include<stdlib.h>
int main()
{
int x=0;
int a=11110011;
x=a&0x11111111;
x+=((a&0x22222222)>>1);
x+=((a&0x44444444)>>2);
x+=((a&0x88888888)>>3);
x=((x&0xF0F0F0F0)>>4)+(x&0x0F0F0F0F);
x=((x&0xFF00FF00)>>8)+(x&0x00FF00FF);
x=((x&0xFFFF0000)>>16)+(x&0x0000FFFF);
system("pause");
return x;
} 展开
#include<stdlib.h>
int main()
{
int x=0;
int a=11110011;
x=a&0x11111111;
x+=((a&0x22222222)>>1);
x+=((a&0x44444444)>>2);
x+=((a&0x88888888)>>3);
x=((x&0xF0F0F0F0)>>4)+(x&0x0F0F0F0F);
x=((x&0xFF00FF00)>>8)+(x&0x00FF00FF);
x=((x&0xFFFF0000)>>16)+(x&0x0000FFFF);
system("pause");
return x;
} 展开
4个回答
展开全部
这里都是按位与运算和右移运算符,一个个看, 知道是这样计算就行了,具体计算是计算机的事情
追问
这个程序主要想实现什么功能呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
程序出自何处?以我看: 没有功能,就是老师让学生练习移位操作的,要是单片机的程序的话可能就有别用的了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把位运算符看懂,就差不多会了。
追问
这个程序主要想实现什么功能呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询