|
发表于 2007-2-11 17:32:50
|
显示全部楼层
大体思路如下,可能局部不太严谨,年底太忙,时间不太够,哈哈,多谅解
if smalladd-bigadd>0 then swap(smalladd,bigadd)
do while bigadd-smalladd=0
smallnetwork=smalladd
smallallowadd = f(smallnetwork)//通过循环找到小地址的本网段所允许的最大网段(或简单换成二进制从右边数0的个数也行)
if bigadd>smallallownetwork then //最大的值还不够大,此时需要超网计算
print smallallownetwork //这个网段已经达到最大,因此可以输出了
smalladd = newbing(smalladd,smallallownetwork) //通过smallallownetwork可以计算出下一个启始网段
else //此时需要进行子网计算,
smallallownetwork = g(smallnetwork)//通过循环找到小地址的小一级子网所允许的最大网段
print smallallownetwork //值合适则输出
smalladd = newsmall(smalladd) //通过smallallownetwork可以计算出下一个启始网段
end if
loop
[ 本帖最后由 parphy 于 2007-2-12 08:47 编辑 ] |
|