c_cpp 检查字节数组中的一系列字节。 https://repl.it/JjHx/1

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 检查字节数组中的一系列字节。 https://repl.it/JjHx/1相关的知识,希望对你有一定的参考价值。

#include <stdint.h>
#include <stdio.h>

bool checkUuidInScanData(uint8_t* advData, uint8_t advDataLen, uint8_t* bleUUID, uint8_t bleUUIDLen)
{
	for (int i = advDataLen; i > bleUUIDLen; --i)
	{
		for (int j = 0; j < bleUUIDLen; ++j)
		{
		  printf("i=%d a=%x \t j=%d u=%x\n", i, advData[i-j], j, bleUUID[j]);
			if (advData[i-j] != bleUUID[j])
				break;
			if (j == bleUUIDLen-1)
				return true;
		}
	}
	return false;
}
#define SERVICE_UUID_LENGTH 16
int main(void) {

  uint8_t metawear_service_uuid[SERVICE_UUID_LENGTH] = {0x32,0x6a,0x90,0x00,0x85,0xcb,0x91,0x95,0xd9,0xdd,0x46,0x4c,0xfb,0xba,0xe7,0x5a };

  uint8_t dat1[] = {0x02,0x01,0x06,0x13,0xFF,0x4C,0x00,0x0C,0x0E,0x00,0x0B,0x9C,0xFA,0xFD,0x21,0x67,0xFE,0x75,0x09,0xC3,0xEE,0x42,0x0A,0x95,0x91,0xCB,0x85,0x00,0x90,0x6A,0x32};
  uint8_t data0[] =  {0x90,0x08,0x4D,0x65,0x74,0x61,0x57,0x65,0x61,0x72,0x02,0x01,0x06,0x11,0x06,0x5A,0xE7,0xBA,0xFB,0x4C,0x46,0xDD,0xD9,0x95,0x91,0xCB,0x85,0x00,0x90,0x6A,0x32};
  uint8_t dataLen = 32;

  bool result = checkUuidInScanData(data, dataLen, metawear_service_uuid, SERVICE_UUID_LENGTH);
  if (result)
    printf("True");
  else
    printf("False");
}

以上是关于c_cpp 检查字节数组中的一系列字节。 https://repl.it/JjHx/1的主要内容,如果未能解决你的问题,请参考以下文章

如何检查字节数组是不是包含 Java 中的 Unicode 字符串?

如何检查字节数组是否包含Java中的Unicode字符串?

c_cpp 对于输入二进制文件中的每个512字节,计算16位校验和并将校验和写为512字节作为第512个字节

c_cpp 读取文件中的所有字节 - 来自“Linux系统编程”一书

Go语言学习bytes包处理字节切片

如何检查字节数组是不是为有效的pdf文件[关闭]