今天不知道怎么突然想到MMX了,想到MMX优化Alpha混合,虽然一直想好好看看研究研究但最经太忙了很难抽出多余的时间,但无意中确有了以下的想法
-
- int main()
- {
- int i;
- INT64 a, b;
- char buf1[ sizeof ( INT64 )];
- char buf2[ sizeof ( INT64 )];
- for (i = 0; i < sizeof ( INT64 ); i++)
- {
- buf1[i] = 'A' + i;
- buf2[i] = 'a' + i;
- }
- memcpy(&a, buf1, sizeof ( INT64 ));
- memcpy(&a, buf2, sizeof ( INT64 ));
- a ^= b;
- b ^= a;
- a ^= b;
- memcpy(buf1, &a, sizeof ( INT64 ));
- memcpy(buf2, &b, sizeof ( INT64 ));
- return 0;
- }
这样一个INT64做一次位运算就有sizeof(INT64)个BYTE做运算,具体效率没有测试,但起码代码节省了。