首页 > 评测 > 【技术分享】在紫色派上实现逻辑位操作函数的配置
【技术分享】在紫色派上实现逻辑位操作函数的配置
- [导读]
- 本帖最后由 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原创,未经许可禁止转载!
网友评论
- 联系人:巧克力娃娃
- 邮箱:board@21ic.com
- 我要投稿
-
欢迎入驻,开放投稿
行业新闻
-
RAK831 Lite:基于树莓派3的LoRa网关... 2022-06-17
-
Imagination推出PowerVR AX2185和AX2145神经... 2022-06-17
-
ODROID-GO是一款兼容Arduino的基于ESP32的便... 2022-06-17
项目外包
more+
- PID温度控制器
预算:¥700004天前
- 摄像头的可视画面需要一直超上(linux系统,ARM)
预算:¥100001天前
- DICOM协议搭建(ARM架构,linux系统)
预算:¥100001天前
- 需MIPI摄像头隔离电路,实现3-4米能长距离
预算:¥100001天前
- 膨宫仪的控制板,控制流量和检测压力
预算:¥1000021小时前
- 无创自动测量血压计 NIBP模块
预算:¥100001天前