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