学习的杂记

说明

这里记录一下平时学习中碰到的几个比较值得重点的地方-----C语言的与,或在单片机中的使用。


//发送字节
void MyI2C_SendByte(uint8_t Byte)
{
	uint8_t i;
	for (i = 0; i < 8; i ++)
	{
		MyI2C_W_SDA(Byte & (0x80 >> i));//高位先行 1000 0000与上Byte最高位,1所在的位置数据保持不变  同时1往后面移动一位
		MyI2C_W_SCL(1);
		MyI2C_W_SCL(0);
	}
}

我们知道,与的算法是“全1则1,有0则0”。以上面的代码为例子,这个是IIC通信协议里面发送一个字节的作用。对于IIC通信的具体过程,我们暂且不详细介绍,主要看第一句代码。


	MyI2C_W_SDA(Byte & (0x80 >> i));

由于SDA线每次只能放上一位数据进行传输,所以一个字节我们要分成8次来传输.那么如何解决这个问题呢,这就要用到与算法了.0x80即(1000 0000),只有最高位是1,其余的都是0.Byte为任意的字节.此时Byte与上0x80,此时的最高位在与上1后会保持原来的值不变,而其余位数与上0后都变成了0,此时便可以得到最高位的值了,以此类推,只要将0x80右移一位,可得到0x40,再与上Byte,便可以得到第二位的值了,循环8次,便可以得到Byte每一位的值了.


	MySPI_W_MOSI(ByteSend & (0x80 >> i));//与最高位  双1才为1 有0则0   

SPI通信协议中也有类似操作 .

我们可以通过这种按位与0x80的方式从而得到字节的每一位数据.


uint8_t i, ByteReceive = 0x00;
if (MySPI_R_MISO() == 1){ByteReceive |= (0x80 >> i);}

或的算法是"有1则1,全0则0",可以看出,当if里面条件成立时,即该位数据为1,我们可以用0x00按位或上0x80,此时可以获得数据1,这与if里面的条件相同;而if条件不成立时,即该位数据为0。此时不能执行条件成立语句,所以可以获得数据0.

uint8_t i, Byte = 0x00;
if (MyI2C_R_SDA() == 1){Byte |= (0x80 >> i);}// if成立该位为1 if不成立该位为0 

IIC中也有类似操作。


关于这两个的用法,一般来说,当我们需要发送字节每一位的数据时,可以通过按位与的方式获取到每一位的数据。

而当我们要接收一个数据的时候,显然一次接收整个字节是不现实的,那么我们只好一个数据位一个数据位地接收了。那么我们可以定义一个数据0x00用来接收数据1,当我们判断数据线上的数据是否等于1,当条件成立时,可以用0x00按位或上0x80.这样子,当条件成立时,便可以得到1,而条件不成立时,数据位仍是0.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习在网络空间安全领域的应用非常广泛,以下是一些常见的应用场景: 1. 威胁检测和入侵检测:通过机器学习算法,可以对网络流量数据进行分析和建模,以检测异常或恶意行为。例如,可以使用监督学习算法来训练模型,对网络流量进行分类,判断是否存在入侵行为。 2. 恶意软件检测:机器学习可以用于识别和分类各种类型的恶意软件,包括病毒、木马、蠕虫等。通过对恶意软件样本进行特征提取和训练,可以构建模型用于自动化的恶意软件检测和防御。 3. 用户行为分析:通过机器学习算法,可以对用户在网络中的行为进行分析和建模,以便检测异常活动或未授权访问。例如,可以使用聚类算法来识别用户行为模式,从而发现潜在的安全威胁。 4. 欺诈检测:机器学习可以用于识别网络上的欺诈行为,如网络钓鱼、虚假广告等。通过对欺诈行为的模式进行学习和建模,可以提高欺诈检测的准确性和效率。 5. 异常检测:机器学习可以用于检测网络中的异常情况,如异常流量、异常登录等。通过对正常行为模式进行建模,可以识别出与之不符的异常行为,从而及时发现和应对潜在的安全威胁。 需要注意的是,在网络空间安全领域使用机器学习算法也存在一些挑战,如数据集的不平衡、对抗样本攻击等。因此,需要综合考虑算法选择、特征工程、模型评估等因素,以提高机器学习在网络安全中的应用效果和鲁棒性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值