一道测试题
在网上看到的一道测试题,要求用C把一个字节的第0位和第7位互换, 第1位和第6位互换,...
要求用三种方法, 执行最快的, 代码最小的, 和两者之间的.
我的想法, 最快的应该是查表了, 最小代码的我只想出这样的
byte flip2(byte b)
{
byte r = 0;
byte mask = 1;
byte bit = 1<<7;
for( ; mask; mask<<=1, bit>>=1)
{
if(b & mask)
r |= bit;
}
return r;
}
两者之间的,我把上面的循环展开成8个if
不知道大家有没有别的想法?