小编dro*_*lex的帖子

写作的好处(1 << 24 - 1)而不是FFFFFF?

我在C中有一段代码,内容如下:

a = b & ((1<<24) - 1);
Run Code Online (Sandbox Code Playgroud)

如果我没有误会,这相当于:

a = b & 0xFFFFFF;
Run Code Online (Sandbox Code Playgroud)

写第一个在性能方面有什么好处?对我来说,阅读起来比较复杂,但我想那个写过的人有比我更好的C背景.

谢谢

c

7
推荐指数
2
解决办法
293
查看次数

SSE内在函数中的if/else语句

我正在尝试使用SSE内在函数优化一小段代码(我是关于该主题的完全初学者),但我有点坚持使用条件.

我原来的代码是:

unsigned long c;
unsigned long constant = 0x12345678;
unsigned long table[256];
int n, k;

for( n = 0; n < 256; n++ )
{
  c = n;
  for( k = 0; k < 8; k++ )
    {
      if( c & 1 ) c = constant ^ (c >> 1);
      else c >>= 1;
    }
  table[n] = c;
}
Run Code Online (Sandbox Code Playgroud)

这段代码的目标是计算一个crc表(常量可以是任何多项式,它在这里不起作用),

我想我的优化代码是这样的:

__m128 x;
__m128 y;
__m128 *table;

x = _mm_set_ps(3, 2, 1, 0);
y = _mm_set_ps(3, 2, 1, 0); …
Run Code Online (Sandbox Code Playgroud)

c++ if-statement sse intrinsics mmx

6
推荐指数
1
解决办法
2920
查看次数

标签 统计

c ×1

c++ ×1

if-statement ×1

intrinsics ×1

mmx ×1

sse ×1