从品牌网站建设到网络营销策划,从策略到执行的一站式服务
#include stdio.h
创新互联建站专注于托克托企业网站建设,响应式网站开发,电子商务商城网站建设。托克托网站建设公司,为托克托等地区提供建站服务。全流程按需规划网站,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务
void fun(int value,int n,int dire)
{
if(dire==0) return;
int x=1(sizeof(int)*8-1);
int temp;
int i;
if(dire0)
{
for(i=0;in;i++)
{
temp=value1;
value=1;
if(temp) value|=x;
}
}
else
{
for(i=0;in;i++)
{
temp=value x;
value=1;
if(temp) value|=1;
}
}
}
void main()
{
int x=0x55555555;
fun(x,1,1);
printf("%x",x);
}
因为是按8进制输入的,8进制的24换成10进制就是20,换成2进制就是00010100(以1字节表示)。而00010100循环右移2位后就是00000101,即10进制的5,而5按8进制输出(输出格式为%o),就是5。
00010100循环左移2位后是01010000,用10进制表示就是80,而80按8进制输出(输出格式为%o),就是120。
循环右移 就是
_cror_
和这个类似的。
你这个是单片机里面的吧
除了单片机,很少有这么用的。
#include stdio.h
#include math.h
unsigned fun(unsigned num, int n)
{
if(n 0)
{
//sizeof(unsigned)*8计算变量所占位数,如int型占32位
return (num (sizeof(unsigned)*8 - n)) | (num n); //先高位移动,再低位移动后,两者按位或,相当把低位溢出的又添加到了高位,实现了循环的效果
}
else
{
return (num (sizeof(unsigned)*8 - abs(n))) | (num abs(n));
}
}
void main(void)
{
printf("%u\n", fun(2, -34));
}
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图