发新帖本帖赏金 30.00元(功能说明)我要提问
返回列表
打印
[应用]

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

[复制链接]
3148|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 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位测试为:
这样我们就基本上接近了关于位操作的函数设计及处理方法问题,尽管这些问题很基础,但它却是很重要,也很使用,希望它对大家能有所裨益!



使用特权

评论回复

打赏榜单

21小跑堂 打赏了 30.00 元 2023-05-18
理由:恭喜通过原创审核!期待您更多的原创作品~

评论
21小跑堂 2023-5-18 13:45 回复TA
基础巩固,完成逻辑位操作,为后续开发做铺垫。 

相关帖子

沙发
wcheng13| | 2023-5-21 12:43 | 只看该作者
开发板是啥啊。模糊看不清

使用特权

评论回复
板凳
jinglixixi|  楼主 | 2023-5-21 17:23 | 只看该作者
wcheng13 发表于 2023-5-21 12:43
开发板是啥啊。模糊看不清

Purple Pi主板,是基于 SigmaStar SSD201 SoC(ARM Cortex A7 内核)兼容树莓派的开发板。

使用特权

评论回复
发新帖 本帖赏金 30.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

455

主题

2756

帖子

38

粉丝