當前位置:首頁 » 編程語言 » c語言中循環移位
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言中循環移位

發布時間: 2023-07-12 08:38:47

1. c語言問題,有關負數的循環移位

#include<stdio.h>

int main()

{int x=-1024,n=4,i;

printf("x=%d ",x);

for(i=31;i>-1;i--)

{printf("%d",(x>>i)&1);

if(i%4==0)printf(" ");

}

for(i=1;i<=n;i++)

x=((x&0x8000000)!=0)|(x<<1);

printf(" 循環左移%d位以後,x=%d ",n,x);

for(i=31;i>-1;i--)

{printf("%d",(x>>i)&1);

if(i%4==0)printf(" ");

}

return 0;

}

2. C語言中的循環移位計算

因為是按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。

3. c語言如何將二維數組行列循環移位

#include<stdio.h>
#defineN5
intmain(){
inti,j,m,n,a[N][N];
printf("inputmn:");
scanf("%d%d",&m,&n);
while(m>0)m-=N;
while(n>0)n-=N;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
a[i][j]=i*N+j+1;
for(i=0;i<N;i++){
for(j=0;j<N;j++)
printf("%-3d",a[(N-m+i)%N][(N-n+j)%N]);
printf(" ");
}
return0;
}

input m n:1 1

25 21 22 23 24

5 1 2 3 4

10 6 7 8 9

15 11 12 13 14

20 16 17 18 19

4. C語言問題——循環移位

#include"stdio.h"
intmain(intargc,char*argv[]){
unsignedinta,n,t;
printf("Inputa&n(inta,n>=0)... ");
if(scanf("%d%d",&a,&n)!=2||a<0||n<0||n>32){
printf("Inputerror,exit... ");
return0;
}
t=a>>n;
printf("Theresultis%u ",(a<<=(32-n))|=t);
return0;
}

運行樣例:

5. C語言編程題:移位函數,既能循環左移又能循環右移

#include<stdio.h>
#include<math.h>
unsignedfun(unsignednum,intn)
{
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));
}
}
voidmain(void)
{
printf("%u ",fun(2,-34));
}

6. C語言中怎麼能通過移位指令與簡單邏輯運算實現循環移位,

比如說 循環右移

inta=100;
intlen=sizeof(int)*8;
intt=a&1;
a>>1;
a|=t<<(len-1)

左移類似。