【发布时间】:2013-07-25 11:09:29
【问题描述】:
那么将一个单词分成两个字节的最快方法是什么?
short s = 0x3210;
char c1 = s >> 8;
char c2 = s & 0x00ff;
对
short s = 0x3210;
char c1 = s >> 8;
char c2 = (s << 8) >> 8;
编辑
怎么样
short s = 0x3210;
char* c = (char*)&s; // where c1 = c[0] and c2 = c[1]
【问题讨论】:
-
每一个都做几百万次,然后计时。
-
你试过第二个吗?我的第一个猜测是它不起作用(即使它起作用,它也是高度特定于平台的)。你为什么还要关心 ZOMG 最快的方式呢?转变和面具不仅非常清晰和明显,而且极不可能成为您的瓶颈。
-
生成汇编代码并通过指令数量亲自查看或将这些语句复制到大量并使用可用的计时功能
标签: c++ c performance bit-manipulation operation