Linux下对外设的控制中,往往要用到移位操作,若设计出相应的函数会有效地通过使用的效率。
位移函数的作用是按位进行数据移动,其数据类型为字节型。在此类函数中,包括左移、右移和位交换。
- 左移
左移函数的表达式为:y=a<<n (a为整数型变量,n=0~7)
实现左移的函数方式为:y=a*(2^n) ,2^n表示2的n次方。
实现左移的函数内容为:
在完成该函数的编辑后,将其存入文件yw.sh即可。
为验证其正确性,需键入指令source ./ yw.sh即可运行该函数。该函数是双目运算,故要键入2个操作数。以操作数0x85为例,其左移2位的结果为0x224,说明函数正确。
- 右移
右移函数的表达式为:y=a>>n (a为整数型变量,n=0~7)
实现右移的函数方式为:y=a/(2^n)
实现右移的函数内容为:
在完成该函数的编辑后,将其存入文件yw.sh即可。
为验证其正确性,需键入指令source ./ yw.sh即可运行该函数。该函数是双目运算,故要键入2个操作数。以操作数0x85为例,其右移2位的结果为0x21,说明函数正确。
- 位交换
在数据操作处理中,常会涉及半字节的操作,比如用字节数据的高4位或低4位,或交换数据的高、低4位等。
对提取的高4位测试为:
对提取的低4位测试为:
这样我们就基本上解决了位移操作的函数设计及处理方法问题,尽管这些问题很基础,但它却很实用。
|