gpt4 book ai didi

c - mem 比较数组以获取匹配字节数

转载 作者:太空宇宙 更新时间:2023-11-04 08:56:31 25 4
gpt4 key购买 nike

int a[10];
int b[10];
memcmp(a, b, sizeof(int) * 10);

memcmp() 只告诉我们哪个内存块更大/更小,因为它只返回 -1,0,+1。有没有一种方法可以知道 a[]b[] 中匹配元素的数量,然后才发生不匹配。

Ex: a = {1, 2, 3, 4, 5, 6}
b = {1, 2, 4}

此处 memcmp(a, b, sizeof(int)* 3) 将返回 -1。我想得到 2 作为答案有没有办法在 memcmp 或一些类似的内置函数的帮助下获得匹配元素的数量

最佳答案

我假设您想要一个低级别的答案,因为您一定已经拒绝了使用循环的简单方法。

您可以将内存块 a[0] 到 a[9] 与 b[0] 到 b[9] 进行异或。当且仅当原始数组相等时,生成的内存将是一 block 零。要获得匹配元素的数量,请计算全零位的 int block 的数量。

您可以在汇编程序中非常快速地执行此操作,因为操作非常简单。

关于c - mem 比较数组以获取匹配字节数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16712364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com