首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

位运算简单题解决方法

2012-02-11 
位运算简单题4.unsignedshorthash(unsignedshortkey){return(key )%256}请问hash(16),hash(256)的值分

位运算简单题
4.unsigned   short   hash(unsigned   short   key)
{
return   (key> > )%256
}
请问hash(16),hash(256)的值分别是:
A.1.16;B.8.32;C.4.16;D.1.32

写明计算步骤,(key> > )不知右移多少位?

[解决办法]
排除法,选A)

应该是右移了4位。。
[解决办法]
楼主是不是你自己搞错了 这段代码在VS上明显编译错误 0_0
[解决办法]
这个问题前几天已经问过了.
[解决办法]
这个怎么算了,看不懂
(key> > )%256

先哪步再哪步呀

[解决办法]
我也没编译通过,是不是写错了
[解决办法]
unsigned short hash(unsigned short key)
{
return (key> > )%256
}
应该是这样的吧
unsigned short hash(unsigned short key)
{
return (key> > 4)%256
}
答案是
hash(16) = [(10000)B> > 4] % 256 = 1
hash(256) = [(100000000)B> > 4] % 256 = 16
因此才得出选A 不知道一楼的哥们怎么得到的
[解决办法]
请问hash(16),hash(256)的值分别是:
A.1.16;B.8.32;C.4.16;D.1.32

首先%256肯定不起作用,因为16/256移动一位以后都小于256,所以只要考虑key> > n即可

我们考虑16=10H,他右移可能的结果是
移动位数,结果
1 8
2 4
3 2
4 1
对比四个答案
A.1.16;B.8.32;C.4.16;D.1.32
A: n=4,带入key=256得到结果是16,match
B: n=1,带入key=256结果是128,不match
C: n=2,带入key=256结果是64,不match
D: n=3,带入key=256结果是16,不match

所以答案就是A,移动位数为4

热点排行