我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

本页主题: 还是同一段程序 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

光子vs电子



性别: 帅哥 状态: 该用户目前不在线
头衔: 程序小白
等级: 人见人爱
家族: YD一族
发贴: 3379
威望: 0
浮云: 0
在线等级:
注册时间: 2007-04-29
最后登陆: 2022-12-09

5come5帮你背单词 [ illustrate /'iləstreit/ vt. 举例说明,阐明,加插图于 ]


还是同一段程序

void CCompressDlg::FileCompress()
{
    int i,j;
    BYTE ch=0,buffer[2];
    unsigned char vanl[3],tch,R_van=0;
    WORD *p1;
    int remain=0,byte_num=0;
    fseek(fout,12L,0);//预留表头
   
    for(i=0;i<f_head.SourceSignalNum;i++)//写码表
    {
        fwrite(&f_table.SourceSignal_CodeLength,1,1,fout);//дÈëÂë±í
        fwrite(&f_table.CodeBits,2,1,fout);   
    }
    f_head.hfSize=12;
    while(!feof(fp))
    {
        //读文件
        //编写文件
        p1=(WORD*)(&vanl[0]);
        buffer[0]=fgetc(fp);
        buffer[1]=buffer[0]&0x0F;//buffer[1] lower 4 bits
        buffer[0]>>=4;//buffer[0] higher 4 bits
        for(i=0;i<2;i++)
        {
            ch=buffer;
            *p1=temp_table[ch].HCode;
            byte_num=((int)temp_table[ch].length+remain)/8;
            p1=*p1<<(8-remain)这句是做什么的?
            tch=vanl[1];
            tch=tch>>remain;
            vanl[2]=tch|R_van;
            for(j=0;j<byte_num;j++)
            {
               fwrite(&vanl[2-j],1,1,fout);
                f_head.hfSize++;
            }
            R_van=vanl[2-j];
            remain=(temp_table[ch].length+remain) % 8;

        }
    }
其中temp_table[ch].HCode;是读入编码对应的霍夫曼编码,主要是while循环内部看不懂,
就这么段代码,看了几小时了,求达人给出详细解释,快崩溃球
顶端 Posted: 2008-04-11 17:48 | [楼 主]
wangfan





性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 915
威望: 0
浮云: 1147
在线等级:
注册时间: 2007-09-10
最后登陆: 2010-05-25

5come5帮你背单词 [ press /pres/ vt. 压,按,紧握,抱紧,挤榨,熨平(衣服等);n. 新闻界,报界,压榨机,压,按 ]


好像很简单啊,没细看,不就C的一点东西吗?
顶端 Posted: 2008-04-11 18:42 | [1 楼]
我来我网·5come5 Forum » 程序员之家

Total 0.012781(s) query 6, Time now is:05-10 07:12, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号