Chinaunix
标题:
难题
[打印本页]
作者:
zachary027
时间:
2011-08-19 15:43
标题:
难题
给定一个无符号的32位整数x,写个程序计算不大于x的最大的2的幂。为了加快运算速度,不可以使用条件判断、循环等带有分支的语句。
作者:
shang2010
时间:
2011-09-02 17:44
本帖最后由 shang2010 于 2011-09-02 17:46 编辑
不懂
作者:
nketc
时间:
2011-09-02 20:42
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;
复制代码
作者:
nketc
时间:
2011-09-02 20:42
带if了。
作者:
shang2010
时间:
2011-09-02 22:40
如果 一个函数存在多个return,,算分支不??
作者:
zcheung
时间:
2011-09-03 11:34
等待高手解答
作者:
cjaizss
时间:
2011-09-03 12:09
如果 一个函数存在多个return,,算分支不??
shang2010 发表于 2011-09-02 22:40
如不分支,多个return根本没有作用.你想想.
作者:
shang2010
时间:
2011-09-03 12:13
讨厌做智力题,,
用这个分支。。
return a>b:a:b;
作者:
smalloc
时间:
2011-09-04 12:07
本帖最后由 smalloc 于 2011-09-04 15:49 编辑
C语言题目吗?
汇编的话, 见这贴12L
http://bbs.chinaunix.net/viewthr ... p;extra=&page=2
作者:
nketc
时间:
2011-09-04 14:58
本帖最后由 nketc 于 2011-09-04 15:09 编辑
时空转换,查表吧。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2