本文轉(zhuǎn)載于Purple Pi OH開(kāi)發(fā)愛(ài)好者,作者李唐
Linux下對(duì)外設(shè)的控制中,往往要用到移位操作,若設(shè)計(jì)出相應(yīng)的函數(shù)會(huì)有效地通過(guò)使用的效率。
位移函數(shù)的作用是按位進(jìn)行數(shù)據(jù)移動(dòng),其數(shù)據(jù)類(lèi)型為字節(jié)型。在此類(lèi)函數(shù)中,包括左移、右移和位交換。
左移
左移函數(shù)的表達(dá)式為:y=a<
實(shí)現(xiàn)左移的函數(shù)方式為:y=a*(2^n) ,2^n表示2的n次方。
實(shí)現(xiàn)左移的函數(shù)內(nèi)容為:
在完成該函數(shù)的編輯后,將其存入文件yw.sh即可。
為驗(yàn)證其正確性,需鍵入指令source ./ yw.sh即可運(yùn)行該函數(shù)。該函數(shù)是雙目運(yùn)算,故要鍵入2個(gè)操作數(shù)。以操作數(shù)0x85為例,其左移2位的結(jié)果為0x224,說(shuō)明函數(shù)正確。
右移
右移函數(shù)的表達(dá)式為:y=a>>n (a為整數(shù)型變量,n=0~7)
實(shí)現(xiàn)右移的函數(shù)方式為:y=a/(2^n)
實(shí)現(xiàn)右移的函數(shù)內(nèi)容為:
在完成該函數(shù)的編輯后,將其存入文件yw.sh即可。
為驗(yàn)證其正確性,需鍵入指令source ./ yw.sh即可運(yùn)行該函數(shù)。該函數(shù)是雙目運(yùn)算,故要鍵入2個(gè)操作數(shù)。以操作數(shù)0x85為例,其右移2位的結(jié)果為0x21,說(shuō)明函數(shù)正確。
位交換
在數(shù)據(jù)操作處理中,常會(huì)涉及半字節(jié)的操作,比如用字節(jié)數(shù)據(jù)的高4位或低4位,或交換數(shù)據(jù)的高、低4位等。
對(duì)提取的高4位測(cè)試為:
對(duì)提取的低4位測(cè)試為:
這樣我們就基本上解決了位移操作的函數(shù)設(shè)計(jì)及處理方法問(wèn)題,盡管這些問(wèn)題很基礎(chǔ),但它卻很實(shí)用。
-
Linux
+關(guān)注
關(guān)注
87文章
11310瀏覽量
209616 -
開(kāi)發(fā)板
+關(guān)注
關(guān)注
25文章
5059瀏覽量
97548 -
觸覺(jué)智能
+關(guān)注
關(guān)注
1文章
38瀏覽量
316
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論