C语言中的循环移位计算?
4个回答
展开全部
for(i=0;i<k;i++) //进行k次移动
{
t=a[n-1]; //保存最右的数据循环右移是将所有数向右移动,移出来的数放到最左边,如此反复
for(j=n-1;j>0;j--) //把所有数据向右移动一位
{
a[j]=a[j-1];
}
a[0]=t; //把移出来的数据放到最左
}
这是很简洁的移位算法,你的算法一时还看不明白。。。
{
t=a[n-1]; //保存最右的数据循环右移是将所有数向右移动,移出来的数放到最左边,如此反复
for(j=n-1;j>0;j--) //把所有数据向右移动一位
{
a[j]=a[j-1];
}
a[0]=t; //把移出来的数据放到最左
}
这是很简洁的移位算法,你的算法一时还看不明白。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for(i=0;i<k;i++) //进行k次移动
{
t=a[n-1]; //保存最右的数据循环右移是将所有数向右移动,移出来的数放到最左边,如此反复
for(j=n-1;j>0;j--) //把所有数据向右移动一位
{
a[j]=a[j-1];
}
a[0]=t; //把移出来的数据放到最左
}
这是很简洁的移位算法,你的算法一时还看不明白。。。
{
t=a[n-1]; //保存最右的数据循环右移是将所有数向右移动,移出来的数放到最左边,如此反复
for(j=n-1;j>0;j--) //把所有数据向右移动一位
{
a[j]=a[j-1];
}
a[0]=t; //把移出来的数据放到最左
}
这是很简洁的移位算法,你的算法一时还看不明白。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先搞清楚,数据类型,如果是8位整型数,24应该是下面的2进制数:
24=16+8=(0001 1000)2
循环左移两位是:
(0110 0000)2=64+32=96
循环右移两位是:
(0000 0110)2=4+2=6
24=16+8=(0001 1000)2
循环左移两位是:
(0110 0000)2=64+32=96
循环右移两位是:
(0000 0110)2=4+2=6
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询