项目介绍及嵌入式C中的位运算
项目介绍和嵌入式C中的位运算
这里是对《流浪宠物疫情监控系统》的背景介绍以及第一次任务的总结
(1)了解整个项目背景和开发流程、开发内容
1.我们为什么做这个项目?
- 国内的狂犬病毒疫苗主要依赖于进口,由于2020年全球疫情的爆发,国内与国外的贸易减少,导致疫苗稀缺,价格上涨。可以通过本项目所做出的成果,去检测宠物的患病情况,提前预防,减少国内对狂犬疫苗需求的压力。
- 宠物的丢失后的寻找。
- 对宠物的健康状况进行监控,让主人更加了解宠物状态。
2.做的目的和意义是什么?
- 减少宠物的感染或者便于控制感染后的传染。
- 通过GPS或北斗,确定宠物的位置;以及通过加速度的变化判断失踪后的宠物所处的状态,如通过加速度的激烈变化和声音的提高判断是否受到危险。
- 通过检测宠物的温度,心跳等生理状况进行评估监测并反馈给用户,让用户时刻保持对宠物健康状况的了解。
3.项目创新点是什么?
- 基于狂犬疫苗的这个背景下,切实的贴合国内的实际情况,提升了项目的档次,使项目拥有更加广阔的前景。
- 当宠物的某些的生理指数超标时,会发出警报,及时的提醒用户。
- 微信已经融于生活,用微信小程序能够让用户更加方便的。
4.本项目有哪些技术难点?
- 宠物的生理数据的准确采集。
- 宠物身上采集到数据的及时,稳定的传输。
- 如何设计出准确算法,防止错误报警。
- 项圈的设计:既要准确的测量到所需的数据,又要控制重量,大小,外观等。
5.目前是否有相类似产品,做一个竞品分析:和别人相比有什么优势?
- 目前国内市面上关于定位这一块做的非常成熟,但其他功能相对较少。我们主要做的是分析宠物的健康状况,并及时反馈给用户,有极高的使用价值。
- 国外的Voyce狗项圈:Voyce介绍 Voyce可以测量宠物的关键生命体征,包括心率、呼吸频率以及其他健康指标,如活动量,休息和消耗的热量。这些数据有助于了解宠物的健康状况,Voyce还允许用户自定义设备,并给出相关的建议,有助于用户了解宠物的感觉,思维和行为。但其售价昂贵且购买不方便。
6.市场痛点是什么?
- 用户相不相信我们的产品。
- 在实际的应用中,是否可靠,方便。
- 如何定价。
(2)学习嵌入式C中的位运算(或、与运算、异或,取反,左移,右移)
1. & 按位与
两个位都是1,结果就是1,否则为0。
例如:a = 2, b = 3 ,c = a & b
a = 0000 0010
b = 0000 0011
c = 0000 0010
c = 2
2. | 按位或
两个或一个位是1,结果是1,否则为0。
例如:a = 2, b = 3 ,c = a | b
a = 0000 0010
b = 0000 0011
c = 0000 0010
c = 2
3. ^ 按位异或
两个位不同,结果是1,否则结果为0。
例如:a = 2, b = 3 ,c = a ^ b
a = 0000 0010
b = 0000 0011
c = 0000 0010
c = 2
4. ~ 按位非
操作一个数,对位取反,0变成1,1变成0。
例如:a = 2 , c = ~a
a = 0000 0010
c = 1111 1101
a = -3
5. <<按位左移
被操作的数据<<被移位数,左移后右边会空,补0。
例如:a = 2, b = 3 ,c = a <<b
a = 0000 0010 即把1向左移3位,前面的0溢出,后面用0补位
c = 0001 0000
c = 16
6. >>按位右移
被操作的数>>被移位数,右移后左边补0,无符号最左边一位是0,有符号(负号)最左边一位是1。
无符号:
a = 20, b = 3 ,c = a >>b
a = 0001 0100 即向右移3位,后面的数溢出,前面用0补位
c = 0000 0010
c = 2
有符号: 各编译器处理方法不一样,有的补符号位(算术右移),有的补0(逻辑右移)
算数右移:(比较多)
a = - 20, b = 3 ,c = a >>b
a = 1110 1100 即向右移3位,后面的数溢出,后面用0补位,第一位补1
c = 1001 1101
c = -30
逻辑右移:
a = - 20, b = 3 ,c = a >>b
a = 1110 1100 即向右移3位,后面的数溢出,后面用1补位
c = 1111 1101
c = -3
所有负数都是按补码来计算的,十进制的结果=源码的补码转化为十进制后+1,再加负号。