#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);
}
#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));
}
首先對比一下 左邊與右邊 那里有不同 同時 程序不同對應的輸出結構有哪些不同。。
P2口 連接8個LED 低電平驅動使其發光。
P2=0xfe //上電 P2.0連接的 LED發光。 其余的熄滅。
對比一下程序
void main() //主函數
{
P2=0xfe; //P2初始化
while(1) //死循環
{
num=P2; //這里 與左邊不同 把P2的狀態給 NUM 也就是0XFE num=0xfe
P2=_crol_(num,1); //P2等于num 循環左移 P2=0xef 這時應該是連接的P2.7的LED發光
delay(0);//延遲
}
}
左邊 代碼 NUM 每次大循環 都賦值 num=0xfe 是固定的 所以不管你以后怎么移動 P2口的輸出都是不變得 只移動了一次。。
循環左移時,用從左邊移出的位填充字的右端,而循環右移時,用從右邊移出的位填充字的左側。這種情況在系統程序中時有使用,在一些控制程序中用得也不少。設有數據說明:
a=01111011,循環左移2位 正確結果: 11101101
過程:
b=a(8-2) 用來得到正常左移丟失的位和循環移位后其正確位置 b=00000001;
a=a2;左移 a=11101100
a=a|b; a=11101101
如果不是用中間變量 a=(a(8-2))|(a2)
總長度N(8 16 32)
循環左移n: (a(N-n))|(an)
循環右移n: (a(N-n))|(an)
C語言的位運算功能是其區別于其他大多數高級程序設計語言的特色之一,用它可以方便實現一些特殊功能,靈活掌握是用C程序編寫系統程序的基礎。
擴展資料:
C語言高效編程技巧:
一:以空間換時間
計算機程序中最大的矛盾是空間和時間的矛盾,那么,從這個角度出發逆向思維來考慮程序的效率問題
二:數學方法解決問題
數學是計算機之母,沒有數學的依據和基礎,就沒有計算機發展,所以在編寫程序的時候,采用一些數學方法會對程序的執行效率有數量級的提高。
三:使用位操作
實現高效的C語言編寫的第三招----使用位操作,減少除法和取模的運算。
在計算機程序中,數據的位是可以操作的最小數據單位,理論上可以用“位運算”來完成所有的運算和操作。一般的位操作是用來控制硬件的,或者做數據變換使用,但是,靈活的位操作可以有效提高程序運行的效率。
參考資料來源:百度百科-c語言程序設計
分享文章:c語言中左右移函數 c語言左移和右移的運算規則
網頁鏈接:http://vcdvsql.cn/article28/ddcsocp.html
成都網站建設公司_創新互聯,為您提供手機網站建設、自適應網站、建站公司、軟件開發、網站收錄、小程序開發
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯