与此问题非常相似:C fastest way to compare two bitmaps
但是我想要一个返回的位图(一个0/1值的文字序列很可能用char *表示),它们是两个的按位OR?这里没有任何记忆似乎有意义吗?
位图保证大小相同。我还希望存储按位OR的结果,因此需要可以访问生成的位图。位图的大小为10 ^ 5字节。
long * a = (long *) getByteBufferData();
long * b = (long *) getByteBufferData(); //these return different pointers
for(int i = 0; i < SystemByteSize , i++){
a[i] = a[i] | b[i];
}
答案 0 :(得分:2)
如果修复了循环限制(缓冲区的字节大小/ sizeof length)并确保缓冲区为<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="col-lg-6 s_panel">
<div class="cont">
<!-- 1st div content -->
</div>
</div>
<div class="col-lg-6 s_panel">
<div class="grid-stack">
<!-- Gridstack content -->
</div>
</div>
- 对齐,则可以确保编译器可以很好地优化它。对于x86,即使旧版本的gcc也会一次使用SSE指令long
16个字节。
在C中编写函数的简明方法是:
or
Here's gcc 4.8 output at -O4。使用针对特定处理器的手工编写的汇编语言可能会做得更好,但不是很多。