标题:想请教一下,这个方法实现什么功能
只看楼主
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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-50570-1-1.html




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

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