當前位置:首頁 » 編程語言 » c語言循環移位

c語言循環移位

發布時間: 2024-12-10 17:32:25

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));
}

② 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。

③ 如何用c語言實現循環左移

循環左移時,用從左邊移出的位填充字的右端,而循環右移時,用從右邊移出的位填充字的左側。這種情況在系統程序中時有使用,在一些控製程序中用得也不少。設有數據說明:

a=01111011,循環左移2位 正確結果: 11101101

過程:

b=a>>(8-2) 用來得到正常左移丟失的位和循環移位後其正確位置 b=00000001;

a=a<<2;左移 a=11101100

a=a|b; a=11101101

如果不是用中間變數 a=(a>>(8-2))|(a<<2)

總長度N(8 16 32)

循環左移n: (a>>(N-n))|(a>>n)

循環右移n: (a<<(N-n))|(a>>n)

C語言的位運算功能是其區別於其他大多數高級程序設計語言的特色之一,用它可以方便實現一些特殊功能,靈活掌握是用C程序編寫系統程序的基礎。

(3)c語言循環移位擴展閱讀:

C語言高效編程技巧:

一:以空間換時間

計算機程序中最大的矛盾是空間和時間的矛盾,那麼,從這個角度出發逆向思維來考慮程序的效率問題

二:數學方法解決問題

數學是計算機之母,沒有數學的依據和基礎,就沒有計算機發展,所以在編寫程序的時候,採用一些數學方法會對程序的執行效率有數量級的提高。

三:使用位操作

實現高效的C語言編寫的第三招----使用位操作,減少除法和取模的運算。

在計算機程序中,數據的位是可以操作的最小數據單位,理論上可以用「位運算」來完成所有的運算和操作。一般的位操作是用來控制硬體的,或者做數據變換使用,但是,靈活的位操作可以有效提高程序運行的效率。

④ 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;

}

熱點內容
自治區編譯局副局長 發布:2024-12-29 02:48:57 瀏覽:845
android閃光燈控制 發布:2024-12-29 02:43:55 瀏覽:910
java什麼書 發布:2024-12-29 02:30:18 瀏覽:806
怎麼在自己購買的伺服器搭建網站 發布:2024-12-29 02:24:27 瀏覽:222
超星上傳圖片 發布:2024-12-29 02:16:25 瀏覽:408
c語言數據結構線性表 發布:2024-12-29 02:16:21 瀏覽:462
如何查詢華為手機配置 發布:2024-12-29 02:15:47 瀏覽:775
小米路由器wifi怎麼配置 發布:2024-12-29 02:09:15 瀏覽:294
魔都戰爭伺服器怎麼逃離 發布:2024-12-29 01:58:45 瀏覽:504
winccvb腳本 發布:2024-12-29 01:51:03 瀏覽:189