本帖最后由 jinglixixi 于 2023-5-12 10:34 编辑
#申请原创# @21小跑堂紫色派是一款安装LINUX软件即可进行其学习与编程测试的开发板,其外观如图1所示。 图1 紫色派 为使其具有温度检测与显示功能,需为它配置一个显示屏和一个温度传感器。 1. 位逻辑处理函数 在紫色派所提供的LINUX中,它只支持条件逻辑判别,却并没有提供相应的位逻辑函数,因此在程序设计中往往会受到很大的牵制。 由于在OLED屏的驱动程序中要用到它,为此特意为其补充相应的位逻辑处理函数,其内容有:与逻辑函数、或逻辑函数、非逻辑函数以及位移处理函数等。 1)与逻辑函数 该函数的作用是按位进行与逻辑运算,它是一个2目操作运算,其数据类型为字节型。
该函数的内容如下: 在完成该函数的编辑后,将其存入文件and.sh即可。 为验证其正确性,按图2所示键入指令source ./and.sh即可运行该函数。其中参与运算的2个操作数为0xfc和0x38,
所得到结果为56。由于56=0X38,故0xfc&0x38=0x38是正确的。 图2 功能验证
若以二进制的形式来表示,其结果如图3所示,该形式更便于验证其正确性。 图3 二进制表示 2)或逻辑函数 该函数的作用是按位进行或逻辑运算,它是一个2目操作运算,其数据类型为字节型。
该函数的内容如下: 在完成该函数的编辑后,将其存入文件or.sh即可。 为验证其正确性,需键入指令source ./or.sh即可运行该函数。为了增强使用的灵活性,故2个操作数是通过按键来输入的。以操作数0xfc和0x38为例,其运算结果为56。
由于253=0Xfd,故0xfc|0xf1=0xfd是正确的。 图4 功能验证
若以二进制的形式来表示,其结果如图5所示。 图5 二进制表示 3)异或逻辑函数 该函数的作用是按位进行异或逻辑运算,它是一个2目操作运算,其数据类型为字节型。
该函数的内容如下: 在完成该函数的编辑后,将其存入文件xor.sh即可。 为验证其正确性,需键入指令source ./xor.sh即可运行该函数。在输入2个操作数后,输入指令hs_xor即可达到结果。以操作数0xfc和241为例,其运算结果为13。
由于241=0Xf1,故0xfc^0xf1=0x0d=13是正确的。 图6 功能验证 4)取反逻辑函数 该函数的作用是按位进行逻辑取反运算,它是一个单目操作运算,其数据类型为字节型。
该函数的内容如下: 在完成该函数的编辑后,将其存入文件not.sh即可。
为验证其正确性,需键入指令source ./not.sh即可运行该函数。由于它是单目运算,故只键入1个操作数即可。以操作数0xfc为例,其运算结果为3,说明函数正确。 图7 功能验证 5)移位操作函数 该函数的作用是按位进行数据移动,它是一个单目操作运算,其数据类型为字节型。在此类函数中,包括左移、右移和位交换。 (1) 左移 左移函数的表达式为:y=a<<n (a为整数型变量,n=0~7) 实现左移的函数方式为:y=a*(2^n) ,2^n表示2的n次方。
实现左移的函数内容为: 在完成该函数的编辑后,将其存入文件yw.sh即可。 为验证其正确性,需键入指令source ./ yw.sh即可运行该函数。该函数是双目运算,故要键入2个操作数。以操作数0x85为例,其左移2位的结果为0x224,说明函数正确。 (2) 右移 右移函数的表达式为:y=a>>n (a为整数型变量,n=0~7) 实现右移的函数方式为:y=a/(2^n)
实现右移的函数内容为: 在完成该函数的编辑后,将其存入文件yw.sh即可。 为验证其正确性,需键入指令source ./ yw.sh即可运行该函数。该函数是双目运算,故要键入2个操作数。以操作数0x85为例,其右移2位的结果为0x21,说明函数正确。 (3) 位交换 在数据操作处理中,常会涉及半字节的操作,比如用字节数据的高4位或低4位,或交换数据的高、低4位等。
对提取的高4位测试为: 对提取的低4位测试为: 这样我们就基本上接近了关于位操作的函数设计及处理方法问题,尽管这些问题很基础,但它却是很重要,也很使用,希望它对大家能有所裨益!
|
基础巩固,完成逻辑位操作,为后续开发做铺垫。