难题
给定一个无符号的32位整数x,写个程序计算不大于x的最大的2的幂。为了加快运算速度,不可以使用条件判断、循环等带有分支的语句。 本帖最后由 shang2010 于 2011-09-02 17:46 编辑不懂
int e = 31;
if (x&0xFFFF0000) { e -=16; x >>=16; }
if (x&0x0000FF00) { e -= 8; x >>= 8; }
if (x&0x000000F0) { e -= 4; x >>= 4; }
if (x&0x0000000C) { e -= 2; x >>= 2; }
if (x&0x00000002) { e -= 1; }
return 31 - e;
带if了。 如果 一个函数存在多个return,,算分支不??:em03::em03: 等待高手解答 如果 一个函数存在多个return,,算分支不??
shang2010 发表于 2011-09-02 22:40 http://bbs.chinaunix.net/images/common/back.gif
如不分支,多个return根本没有作用.你想想. 讨厌做智力题,,
用这个分支。。
return a>b:a:b; 本帖最后由 smalloc 于 2011-09-04 15:49 编辑
C语言题目吗?
汇编的话, 见这贴12L
http://bbs.chinaunix.net/viewthread.php?tid=1253307&extra=&page=2 本帖最后由 nketc 于 2011-09-04 15:09 编辑
时空转换,查表吧。
页:
[1]