C語言中按位左移的運算符為,其規(guī)則如下:

成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比軹城網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式軹城網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋軹城地區(qū)。費用合理售后完善,10余年實體公司更值得信賴。
對于操作an,
1 按照二進制值每位向高位(書寫上是向左)移動n位;
2 最高位(最左邊的)n位舍去;
3 最低位(最右邊)填加n個0.
簡單起見,用char型舉例如下:
例一
0x12 3 =
B00010010 3 =
B10010 000(這里最高位的三個0被舍去,其它依次左移,最低位補三個0) =
0x90
即0x12 3 = 0x90
例二
0x9E 2 =
B10011110 2 =
B01111000 (最高位10舍去,最低位補兩個0)=
0x78
可以編寫如下程序驗證:
#include?stdio.h
void?check(char?a,?int?n)
{
printf("0x%hhx??%d?=?0x%hhx\n",?a,?n,?an);
}
int?main()
{
check(0x12,?3);
check(0x9e,?2);
return?0;
}
其運行結(jié)果為
0x12??3?=?0x90
0x9e??2?=?0x78
可以看到與我們計算結(jié)果是相符的。
C語言總并沒有左移函數(shù)和右移函數(shù)。左移和右移是位運算符,僅僅適用于整數(shù)型的數(shù)據(jù)。
05左移5位,即000000
06左移6位,即0000000
左移后是用二進制表示的,
具體的這個程序中有什么用,應(yīng)該看程序本身,
就像#define PI_FRMERR (0 5)
用000000代替PI_FRMERR可能與某個數(shù)進行與操作或其他的。
循環(huán)左移時,用從左邊移出的位填充字的右端,而循環(huán)右移時,用從右邊移出的位填充字的左側(cè)。這種情況在系統(tǒng)程序中時有使用,在一些控制程序中用得也不少。設(shè)有數(shù)據(jù)說明:
a=01111011,循環(huán)左移2位 正確結(jié)果: 11101101
過程:
b=a(8-2) 用來得到正常左移丟失的位和循環(huán)移位后其正確位置 b=00000001;
a=a2;左移 a=11101100
a=a|b; a=11101101
如果不是用中間變量 a=(a(8-2))|(a2)
總長度N(8 16 32)
循環(huán)左移n: (a(N-n))|(an)
循環(huán)右移n: (a(N-n))|(an)
C語言的位運算功能是其區(qū)別于其他大多數(shù)高級程序設(shè)計語言的特色之一,用它可以方便實現(xiàn)一些特殊功能,靈活掌握是用C程序編寫系統(tǒng)程序的基礎(chǔ)。
擴展資料:
C語言高效編程技巧:
一:以空間換時間
計算機程序中最大的矛盾是空間和時間的矛盾,那么,從這個角度出發(fā)逆向思維來考慮程序的效率問題
二:數(shù)學(xué)方法解決問題
數(shù)學(xué)是計算機之母,沒有數(shù)學(xué)的依據(jù)和基礎(chǔ),就沒有計算機發(fā)展,所以在編寫程序的時候,采用一些數(shù)學(xué)方法會對程序的執(zhí)行效率有數(shù)量級的提高。
三:使用位操作
實現(xiàn)高效的C語言編寫的第三招----使用位操作,減少除法和取模的運算。
在計算機程序中,數(shù)據(jù)的位是可以操作的最小數(shù)據(jù)單位,理論上可以用“位運算”來完成所有的運算和操作。一般的位操作是用來控制硬件的,或者做數(shù)據(jù)變換使用,但是,靈活的位操作可以有效提高程序運行的效率。
參考資料來源:百度百科-c語言程序設(shè)計
網(wǎng)站名稱:c語言函數(shù)左移 C語言函數(shù)左移頭文件
網(wǎng)站路徑:http://www.yijiale78.com/article44/docjshe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、網(wǎng)站策劃、建站公司、小程序開發(fā)、域名注冊、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)