《计算机网络课程设计(第2版)》——2.5节相关扩展

    xiaoxiao2021-08-15  241

    2.5 相关扩展前面我们提到,校验和还有其他一些计算方法,下面我们就来简要介绍一下利用延迟进位法进行计算的方法。延迟进位法的算法描述:将进位累加的过程延迟到整个累加循环结束之后进行,这样可以提高计算速度。

    主要的实现过程 while(!infile.eof()) //判断文件是否结束, 若否则对被校验的16位数据进行累加 { int h,l; //分别表示16位数据的高8位和低8位 infile>>hex>>h; //从文件中读入一个16进制表示的数据, 作为高8位 if(infile.eof()) l=0; //若后面没有其他数据, 将0作为低8位 else infile>>hex>>l; //若后面还有数据, 读入下一个作为低8位 sum+=(h*256+l); //将组合好的16位数据累加到sum中 } infile.close(); //关闭文件 check_sum=short((sum&0xffff)+(sum>>16)); //将32位累加和转换为16位数据 //若累加过程中有向高16位的进位, 则要将进位部分加到低16位上 check_sum=~check_sum; //对累加和取反码

    最新回复(0)