本文轉(zhuǎn)載于Purple Pi OH開發(fā)愛好者,作者李唐
Linux下對外設(shè)的控制中,往往要用到移位操作,若設(shè)計(jì)出相應(yīng)的函數(shù)會有效地通過使用的效率。
位移函數(shù)的作用是按位進(jìn)行數(shù)據(jù)移動,其數(shù)據(jù)類型為字節(jié)型。在此類函數(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,說明函數(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,說明函數(shù)正確。
位交換
在數(shù)據(jù)操作處理中,常會涉及半字節(jié)的操作,比如用字節(jié)數(shù)據(jù)的高4位或低4位,或交換數(shù)據(jù)的高、低4位等。
對提取的高4位測試為:
對提取的低4位測試為:
這樣我們就基本上解決了位移操作的函數(shù)設(shè)計(jì)及處理方法問題,盡管這些問題很基礎(chǔ),但它卻很實(shí)用。
-
Linux
+關(guān)注
關(guān)注
87文章
11356瀏覽量
210769 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5153瀏覽量
98489 -
觸覺智能
+關(guān)注
關(guān)注
1文章
41瀏覽量
387
發(fā)布評論請先 登錄
相關(guān)推薦
Linux系統(tǒng)更換開機(jī)logo方法教程,觸覺智能RK3562開發(fā)板演示

OpenHarmony怎么修改DPI密度值?觸覺智能RK3566鴻蒙開發(fā)板演示

VMware環(huán)境下,同時(shí)燒錄固件檢測不到設(shè)備如何解決?觸覺智能鴻蒙開發(fā)板演示

OpenHarmony默認(rèn)30秒熄屏太麻煩?觸覺智能鴻蒙開發(fā)板教你輕松取消

OpenHarmony屬性信息怎么修改?觸覺智能RK3566鴻蒙開發(fā)板來演示

如何在Linux系統(tǒng)實(shí)現(xiàn)屏幕旋轉(zhuǎn)?觸覺智能RK3568鴻蒙開發(fā)板演示

如何在開源鴻蒙OpenHarmony開啟SELinux模式?RK3566鴻蒙開發(fā)板演示

OpenHamrony4.0去除鎖屏是一種什么體驗(yàn)?觸覺智能給你支支招

觸覺智能Purple Pi OH鴻蒙開發(fā)板成功適配OpenHarmony5.0 Release,開啟新征程

瑞芯微RK3566鴻蒙開發(fā)板Android11修改第三方輸入法為默認(rèn)輸入法

瑞芯微RK3566鴻蒙開發(fā)板Ubuntu虛擬機(jī)環(huán)境搭建教程,觸覺智能Purple Pi OH主板

瑞芯微RK3566鴻蒙開發(fā)板Ubuntu虛擬機(jī)環(huán)境搭建教程,觸覺智能Purple Pi OH主板

馬上教會你Purple Pi OH開發(fā)板之ADB常用命令

適合大學(xué)生的鴻蒙開發(fā)板-Purple Pi OH之安裝Docker

評論