| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 443 人关注过本帖
标题:想请教一下,这个方法实现什么功能
只看楼主 加入收藏
fairy1331
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2006-3-15
收藏
 问题点数:0 回复次数:3 
想请教一下,这个方法实现什么功能
private static int sum(ByteBuffer bb) {

int sum = 0;

while (bb.hasRemaining()) {

if ((sum & 1) != 0)

sum = (sum >> 1) + 0x8000;

else

sum >>= 1;

sum += bb.get() & 0xff;

sum &= 0xffff;

}

return sum;

}

想请教一下,这个方法实现什么功能
2006-03-15 15:35
fairy1331
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2006-3-15
收藏
得分:0 

为什么没有人回答我啊? 请高手帮帮忙啊
自己顶一下!


http://develop./ IT同盟必看!
2006-03-17 14:38
weizheng
Rank: 1
等 级:新手上路
威 望:2
帖 子:286
专家分:0
注 册:2005-4-21
收藏
得分:0 
if else的作用是右移sum一位,并且如果原来最低位是1,
就把它rotate到第16位。然后取出bb里边的一个byte,
把它加到sum里边,然后只保留结果的short部分(16位)。
不知道ByteBuffer的机制,
看来那个bb.get()方法既需要取出一个byte,
还要移除当前值;也或者bb.hasRemaining()需要调用cursor移动的操作;总之,这两个方法的名称有点词不达意。
整体方法的作用我也不太明白,抱歉。

温和如玉,完美纯正。
2006-03-17 15:26
fairy1331
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2006-3-15
收藏
得分:0 
谢谢楼上解答,期待......

http://develop./ IT同盟必看!
2006-03-17 16:54
快速回复:想请教一下,这个方法实现什么功能
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018245 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved