首页 > 评测 > 【技术分享】在紫色派上实现逻辑位操作函数的配置

【技术分享】在紫色派上实现逻辑位操作函数的配置

  
  • 作者:
  • 来源:
  • [导读]
  • 本帖最后由 jinglixixi 于 2023-5-12 10:34 编辑 #申请原创# @21小跑堂紫色派是一款安装LINUX软件即可进行其学习与编程测试的开发板,其外观如图1所示。1.jpg (39.95 KB )下载附件2023-5-12 10:00 上传图1 紫

本帖最后由 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位测试为:
这样我们就基本上接近了关于位操作的函数设计及处理方法问题,尽管这些问题很基础,但它却是很重要,也很使用,希望它对大家能有所裨益!

 

  • 本文系21ic原创,未经许可禁止转载!

网友评论