【发布时间】:2021-05-09 20:53:52
【问题描述】:
假设我们有
int *set1 = malloc(n);
int *set2 = malloc(n);
然后我们用数据填充这两个集合。我的目标是按位或在 set1 和 set2 之间执行。
我想我不能做类似的事情
for (i=0; i<n; i++) {
set1[i] = set1[i] | set2[i];
}
因为 n 是字节数,而不是数组的单元数。
有什么想法吗?提前致谢
【问题讨论】:
-
n / sizeof(int)? -
通常情况下,您会使用
malloc(n * sizeof(int))然后 n 是数组中的元素数。 -
是的,但是如果 n/sizeof(int) 是十进制数呢?
-
@Mark Tolonen 抱歉,它必须和我写的一样。
-
那么
n / sizeof(int)就是元素个数。假设 n 是一个整数,结果也是一个整数,并且是数组支持的整数个数。如果n不是sizeof(int)的倍数,则不会对剩余的奇数字节进行或运算。但如果你想这样,不要使用int。
标签: c bitwise-or