一道测试题

fengye 2001-07-19 12:56:04
在网上看到的一道测试题,要求用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
不知道大家有没有别的想法?
...全文
88 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
FireBow 2001-07-20
  • 打赏
  • 举报
回复
关注
ed9er 2001-07-19
  • 打赏
  • 举报
回复
那你定义个类,就叫Byte,然后一位位取,然后用back_insert_iterator放到vector里面,当然,vector最好用vector<bool>,然后再用iterator取出来构造出另一个Byte……

这样估计就算app framework OO programmers了
8))
fengye 2001-07-19
  • 打赏
  • 举报
回复
因为原题里有这么一句话:
This usually separates low-level bit-twiddlers from app framework OO programmers.
所以, 我怀疑这道题目做的越好, 就越没有希望 :-)
就当是锻炼一下创造性思维了.
fengye 2001-07-19
  • 打赏
  • 举报
回复
问题本身是不难, 难的是最小, 最快的要求.
而且还要猜面试者的心思.
riluo 2001-07-19
  • 打赏
  • 举报
回复
相当于把一个char逆序吧?没这么复杂。

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧