Xor
向量与向量每个元素按位异或。
函数接口声明如下:
- 整型数的操作:
HmppResult HMPPS_Xor_8u(const uint8_t *src1, const uint8_t *src2, uint8_t *dst, int32_t len);
HmppResult HMPPS_Xor_16u(const uint16_t *src1, const uint16_t *src2, uint16_t *dst, int32_t len);
HmppResult HMPPS_Xor_32u(const uint32_t *src1, const uint32_t *src2, uint32_t *dst, int32_t len);
- 整型数的原址操作:
HmppResult HMPPS_Xor_8u_I(const uint8_t *src, uint8_t *srcDst, int32_t len);
HmppResult HMPPS_Xor_16u_I(const uint16_t *src, uint16_t *srcDst, int32_t len);
HmppResult HMPPS_Xor_32u_I(const uint32_t *src, uint32_t *srcDst, int32_t len);
参数
参数名 |
描述 |
取值范围 |
输入/输出 |
---|---|---|---|
src1 |
指向第一个源向量的指针。 |
非空 |
输入 |
src2 |
指向第二个源向量的指针。 |
非空 |
输入 |
dst |
指向目的向量的指针。 |
非空 |
输出 |
srcDst |
指向原址操作向量的指针。 |
非空 |
输入/输出 |
len |
向量长度。 |
(0, INT_MAX] |
输入 |
返回值
- 成功:返回HMPP_STS_NO_ERR。
- 失败:返回错误码。
错误码
错误码 |
描述 |
---|---|
HMPP_STS_NULL_PTR_ERR |
src1、src2、dst、srcDst这几个入参中存在空指针。 |
HMPP_STS_SIZE_ERR |
len小于或等于0。 |
示例
#define BUFFER_SIZE_T 9 void XorExample() { uint8_t src1[BUFFER_SIZE_T] = {55, 63, 123, 145, 210, 99, 123, 145, 210}; uint8_t src2[BUFFER_SIZE_T] = {123, 145, 210, 99, 123, 145, 210, 99, 123}; uint8_t dst[BUFFER_SIZE_T] = {0}; int32_t i; HmppResult result = HMPPS_Xor_8u(src1, src2, dst, BUFFER_SIZE_T); printf("result = %d \ndst =", result); if (result != HMPP_STS_NO_ERR) { return; } for (i = 0; i < BUFFER_SIZE_T; i++) { printf("%d ", dst[i]); } }
运行结果:
result = 0 dst = 76 174 169 242 169 242 169 242 169